fork三个通过管道交互的独立进程,等待它们完成,然后打印终止消息

时间:2016-01-23 22:15:36

标签: c operating-system fork

所以我的编程任务是:

  • 创建3个独立流程
  • 让他们通过管道将数据发送给对方
  • 发送最终数据时,三个进程中的每一个都将打印其PID。

我的问题是,如何让流程延迟,以便其他流程可以在终止之前完成任务?

如果孩子在等待,我是否需要发送信号?

现在,我有类似......

p1 = fork();
// For the first process
if (p1 == 0) {
    // For the second process
    p2 = fork();
    if (p2 == 0) {
        // For the third process
        p3 = fork();
        if (p3 == 0) {
        }
    }

}

// This is the parent
else {
}

1 个答案:

答案 0 :(得分:0)

你的第一个孩子正在分娩第二个孩子,这是分娩下一个孩子等等。

这真的是这里需要的吗?很难说...父母应该有3个直接的孩子,兄弟姐妹吗?

在这里你要剥离这种血统,一个孩子的孩子......一个有孙子的父母等等。如果这是它应该如何,那么父母必须等待第一个孩子要回来......第一个孩子必须等待孩子回来,等等。

至于他们输出他们的PID ......我说这是一个简单的例子,让每个子进程输出其PID。

所有这些内容都可以在手册页中详细阅读,也可能是您在完成任务之前参加的课程或讲座。

祝你好运。