将 stdout 和 stderr 重定向到分布式 shell 程序的套接字

2023-11-27

我制作了一个具有客户端和服务器的分布式 shell 程序。客户端向服务器发送命令请求,服务器在本地执行该命令,并将该命令的结果输出给客户端。我无法弄清楚如何将 stdout/stderr 重定向到客户端。我使用 execvp 来执行命令。

我想我可能必须使用 dup2 ?但我不知道如何正确使用它。有什么帮助吗?


你只需要使用dup2()将套接字的文件描述符复制到 stderr 和 stdout 文件描述符上。这与重定向到管道几乎是一样的。

cpid = fork();
if (cpid == 0) {
  dup2(sockfd, STDOUT_FILENO);
  dup2(sockfd, STDERR_FILENO);
  execvp(...);
  /*... etc. etc. */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 stdout 和 stderr 重定向到分布式 shell 程序的套接字 的相关文章

  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • WinSock.h 和 WinSock2.h 使用哪个?

    有谁知道 WinSock h 和 WinSock2 h 之间的区别 我知道它们不使用相同的库 lib 但我不知道 WinSock2 是否仅添加了新功能 或者是否还改进了 WinSock 1 功能 我正在使用 IP TCP 套接字 并希望使用
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 对月份(带字符串)排序算法

    我有这个月的数组 January March December October 我想把它排序如下 January March October December 我目前正在思考 如果 否则 可怕的级联 但我想知道是否还有其他方法可以做到这一点
  • 将 strsplit 应用于 data.frame 中的特定列

    我有一个包含分类信息的大型数据框 这是一个例子 gt d lt data frame x c 1 2 3 4 classification c cl1 scl1 cl2 cl3 bla cl4 subclass2 gt d x classi
  • onClick 事件未触发 |安卓

    我制作了一个非常简单的测试应用程序 其中包含一项活动和一种布局 这onClick第一次按下时不会触发 正如它应该的那样 活动 package com example mytest import android os Bundle impor
  • 无法 docker pull - 连接被拒绝

    我正在 ubuntu virtualbox 中从 docker 运行以下命令 并收到连接被拒绝错误 我位于公司代理后面 并配置了环境变量以使用代理以及用户名和密码 我还尝试使用代理链 root mbak1 VirtualBox sudo p
  • 有没有办法在 JSP 中填充地图?

    例如
  • 什么是“此处需要”错误

    它位于我的 Eclipse Problems 视图中 代码编译正常 但出现错误 required from here 指向一些 boost 头文件和行state data const current state interlocked co
  • 如何测试 Haskell 中的错误?

    我希望能够确保函数在接收到无效值时会抛出错误 例如 假设我有一个仅返回正数的函数 pos pos Int gt Int pos x x gt 0 x otherwise error Invalid Input 这是一个简单的例子 但我希望你
  • 冗余通用参数

    我有这两个接口和类 public interface Identifiable
  • 如何保护nodejs中的公共动态文件夹

    我在 public images picture jpg 中显示带有玉的图片 但我想保护某些图片或限制对公共文件夹的访问 该怎么做 project node modules public images image jpg javascrip
  • 如何在Excel中仅复制单元格的纯文本?

    我正在设计一个 Excel 工作表 用户将单击一个命令按钮来复制预定的单元格范围 然后 用户可以使用 Firefox 或 IE 将内容粘贴到 Web 应用程序中 Web 应用程序的设计超出了我的控制范围 目前用于数据输入的文本框是富文本输入
  • 为多个变量制作堆积条形图 - R 中的 ggplot2

    我在 ggplot2 中制作堆积条形图时遇到一些问题 我知道如何用 barplot 制作一个 但我想使用 ggplot2 因为很容易使条形具有相同的高度 如果我没有记错的话 使用 position fill 我的问题是我有多个变量 我想将它
  • 有效地找到独特的排列

    我有以下问题 我需要计算一个集合的排列 然而 该集合可能包含两个相同的元素 因此会导致重复排列 例如 给定集合 0 0 1 2 排列包括以下可能性 1 2 0 0 1 2 0 0 但是 我想避免类似的相同排列 在 MATLAB 中我可以简单
  • 验证一个字段或另一个字段是否存在 (XOR)

    如何验证一个或另一个字段的存在 但不能同时验证两个字段和至少一个字段的存在 如果您将条件添加到数值验证中 您的代码将起作用 如下所示 class Transaction lt ActiveRecord Base validates pres
  • 如何退出或关闭(而不是杀死)Word文档(进程)?

    在我们公司 我们使用 Windows 应用程序生成 Word 2010 文档 有时文档没有正确关闭 因此另一个应用程序 是的 他们仍然称之为开发 杀死运行超过1分钟的word进程 这些被杀死的进程存储在MS Word的 文档恢复 中 这些文
  • 如何使控制中心滑块可编辑?

    我正在开发一个可以播放声音文件的应用程序 如果我打开苹果音乐应用程序 滑块可以让我在我所在的歌曲之间移动 其他应用程序 例如 Spotify 或 overcast 不允许这种行为 到目前为止 我已经能够更改控制中心的所有参数 但除外 有什么
  • opencv中cv::KeyPoint类的类成员class_id的含义和用途是什么?

    OpenCV 2 4 3参考手册中KeyPoint class id被描述为 可用于按其所属对象对关键点进行聚类的对象 ID 由于我对 关键点 缺乏足够的了解 我无法理解其目的是什么class id 我的另一个问题是 通过使用特征检测器 描
  • 是否可以可靠地将用户文件自动解码为 Unicode? [C#]

    我有一个网络应用程序 允许用户上传其内容进行处理 处理引擎需要 UTF8 并且我正在从多个用户的文件编写 XML 因此我需要确保可以正确解码上传的文件 因为如果我的用户知道他们的文件 我会感到惊讶were编码 我几乎不希望他们能够正确spe
  • 从 DOM 元素获取 ComponentRef

    已经回答了如何从 Angular 2 组件获取 DOM 元素 ComponentRef location nativeElement ComponentRef location 提供了可以直接访问 DOM 的 ElementRef But
  • 如何访问分配给不同进程的内存? [复制]

    这个问题在这里已经有答案了 我已编辑 1 c 如下 include
  • 将 stdout 和 stderr 重定向到分布式 shell 程序的套接字

    我制作了一个具有客户端和服务器的分布式 shell 程序 客户端向服务器发送命令请求 服务器在本地执行该命令 并将该命令的结果输出给客户端 我无法弄清楚如何将 stdout stderr 重定向到客户端 我使用 execvp 来执行命令 我