【发布时间】:2011-05-09 14:16:31
【问题描述】:
我想编写一个 c 程序,在其中创建多个子进程并将它们的输入和输出重定向到不同的文件描述符。我搜索了很多但找不到相关结果。请帮忙。
【问题讨论】:
-
@jweyrich 您的链接与此问题无关
标签: c process file-descriptor io-redirection child-process
我想编写一个 c 程序,在其中创建多个子进程并将它们的输入和输出重定向到不同的文件描述符。我搜索了很多但找不到相关结果。请帮忙。
【问题讨论】:
标签: c process file-descriptor io-redirection child-process
以dup 开头。你真的需要更加努力地搜索。这方面的材料很多。
【讨论】:
答案取决于您的操作系统。在类 UNIX 系统上,您使用 dup() 和 dup2() 来复制文件描述符;当子进程为exec-ed 时,每个子进程将从父进程继承当前的文件描述符集。所以通常你 fork 子进程,将文件描述符 0、1 和 2 设置为你想要的任何值,然后 exec() 实际的子程序。
【讨论】:
我最喜欢的是forkpty。这个函数派生出一个孩子,并给你一个文件描述符到它的标准输入/标准输出。分叉后可以使用exec,
【讨论】: