gpt4 book ai didi

c - C中子进程之间的管道

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:15 25 4
gpt4 key购买 nike

我以前见过这个问题,但还是有点困惑:如何在同一个父进程的子进程之间创建通信?我现在要做的就是将消息从第一个子进程传递到第 n 个子进程。我的想法是在父进程中创建n-1个管道,然后将父进程的末端重定向到下一个子进程。我想不通的是,如果尚未创建下一个子进程,我们将如何重定向父进程的末端?我觉得我处理这个问题的方式有问题。

编辑:我的目标是打印从第一个子进程传递到最后一个子进程的消息。这是一个简单的程序。

最佳答案

您不需要先创建流程。解决方案如下:首先创建所有需要的管道,将它们保存在某个数组中。然后你执行一个fork,相应地重定向输入和输出流(对于子进程),关闭未使用的管道末端并执行一个exec。管道可以在没有相应进程的情况下存在,它们有缓冲区,所以你可以在没有人还在读的时候写入管道,这没问题。

在执行 exec 之前,您应该注意关闭未使用的 ID。并小心写入输入端点(所有输入端点)可能关闭的管道:它可能导致 SIGPIPE

关于c - C中子进程之间的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com