【问题标题】:C - Communicating between top and bottom level processesC - 在顶层和底层进程之间进行通信
【发布时间】:2016-02-29 23:05:35
【问题描述】:

给定一个 fork n 个进程的程序,我如何使用命名管道从底层(叶)进程向顶层进程发送消息。

我知道如何从命名管道写入和读取,但我不确定如何将命名管道作为底层进程写入并等待仅从顶层进程读取它。

【问题讨论】:

    标签: c fork ipc


    【解决方案1】:

    在顶部进程中创建一个管道对并让底部进程继承它(自动)。然后底部进程可以写入写入端,顶部进程可以从读取端读取。

    您使用pipe 系统调用创建了一个管道对,记录在 http://linux.die.net/man/2/pipe 。 该文档提供了一个子读取和父写入的示例。在你的情况下,你会改变它。

    继承的 fds 是对 vnode 的计数引用,因此这就是为什么您需要关闭所有进程中的所有写入端,而不是要从中写入的底部进程,以便最终关闭写入器中的写入端进程可以在阅读器中生成文件结尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-20
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 2011-01-05
      • 2016-06-12
      相关资源
      最近更新 更多