【问题标题】:execl pipe without dup没有 dup 的 execl 管道
【发布时间】:2009-09-11 21:02:16
【问题描述】:

我正在尝试使用 execl 从父级执行程序。我进行正常的管道设置和分叉。这是诀窍...我需要我的孩子(可以有任意数量的孩子)与父母交流。

程序“A”(父)创建管道分叉并执行到“B”(子)。在程序 B 的 main() 函数中,我需要能够读写管道。

在excel接管并执行我的子进程后,有什么方法可以访问我在子进程中的管道文件描述符?

谢谢你, ~埃里克

【问题讨论】:

    标签: c++ c exec pipe


    【解决方案1】:

    execl(3) 对文件描述符没有影响,只有一个例外

    可以使用fcntl(2) 标记文件描述符close-on-exec,但通常execve(2) 的各种风格对打开的文件描述符没有影响,并且它们在子项中保持打开状态。

    【讨论】:

    • 谢谢。我发现将管道的“in”和“out”文件描述符作为参数传递给程序“B”就可以了。
    【解决方案2】:

    阅读 Beej 的 Unix 进程间通信指南(您可以在 http://beej.us/guide/ 找到它),尤其是第 4 节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多