【发布时间】:2009-09-11 21:02:16
【问题描述】:
我正在尝试使用 execl 从父级执行程序。我进行正常的管道设置和分叉。这是诀窍...我需要我的孩子(可以有任意数量的孩子)与父母交流。
程序“A”(父)创建管道分叉并执行到“B”(子)。在程序 B 的 main() 函数中,我需要能够读写管道。
在excel接管并执行我的子进程后,有什么方法可以访问我在子进程中的管道文件描述符?
谢谢你, ~埃里克
【问题讨论】:
我正在尝试使用 execl 从父级执行程序。我进行正常的管道设置和分叉。这是诀窍...我需要我的孩子(可以有任意数量的孩子)与父母交流。
程序“A”(父)创建管道分叉并执行到“B”(子)。在程序 B 的 main() 函数中,我需要能够读写管道。
在excel接管并执行我的子进程后,有什么方法可以访问我在子进程中的管道文件描述符?
谢谢你, ~埃里克
【问题讨论】:
execl(3) 对文件描述符没有影响,只有一个例外可以使用fcntl(2) 标记文件描述符close-on-exec,但通常execve(2) 的各种风格对打开的文件描述符没有影响,并且它们在子项中保持打开状态。
【讨论】:
阅读 Beej 的 Unix 进程间通信指南(您可以在 http://beej.us/guide/ 找到它),尤其是第 4 节。
【讨论】: