【问题标题】:Redirecting input and output of a child process in C在C中重定向子进程的输入和输出
【发布时间】:2011-05-09 14:16:31
【问题描述】:

我想编写一个 c 程序,在其中创建多个子进程并将它们的输入和输出重定向到不同的文件描述符。我搜索了很多但找不到相关结果。请帮忙。

【问题讨论】:

标签: c process file-descriptor io-redirection child-process


【解决方案1】:

dup 开头。你真的需要更加努力地搜索。这方面的材料很多。

【讨论】:

    【解决方案2】:

    答案取决于您的操作系统。在类 UNIX 系统上,您使用 dup()dup2() 来复制文件描述符;当子进程为exec-ed 时,每个子进程将从父进程继承当前的文件描述符集。所以通常你 fork 子进程,将文件描述符 0、1 和 2 设置为你想要的任何值,然后 exec() 实际的子程序。

    【讨论】:

    • 既然用到了“文件描述符”这个词,那我猜肯定是UNIX/Linux。为了完整性:在 Windows 上使用 CreateProcess 并查看 STARTUPINFO 结构的最后三个成员。
    【解决方案3】:

    我最喜欢的是forkpty。这个函数派生出一个孩子,并给你一个文件描述符到它的标准输入/标准输出。分叉后可以使用exec,

    【讨论】:

      猜你喜欢
      • 2016-02-29
      • 2011-04-12
      • 2016-06-17
      • 1970-01-01
      • 2013-09-06
      • 1970-01-01
      • 2023-03-06
      • 2021-03-25
      相关资源
      最近更新 更多