2016-01-23 25 views
0

所以我的编程任务是:叉3,通过管道交互独立的过程,等他们完成,然后打印终止的消息

  • 创建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 { 
} 

回答

0

嗯,你的第一个孩子分叉这是分叉的下一个孩子的第二个孩子,等

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

在这里,你分出了这种血统,一个孩子,一个孩子......父母与孙子等等。如果这是应该的,父母必须等待第一个孩子回来。第一个孩子必须等待孩子回来,等等。

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

所有这些东西都可以在手册页中详细阅读,也可以在您完成作业前参加任何课程或讲座。

祝你好运。