我的子进程无法使用Pipe

时间:2017-01-14 22:40:16

标签: c multithreading pipe fork

在我的程序中,子进程应该从键盘接收一些值,并发送到父进程。父进程应计算总和并返回子进程。我的计划如下所示:

  

3 4 5   -1 child(4753):向父母发送3(4751):收到3父母(4751):发送3回父母(4751):收到4父母(4751):   发送7回家长(4751):收到5个孩子(4753):收到3   父(4751):发送12回父(4753):收到4父(4753):   发送7回家长(4753):收到5家长(4753):发回12回来

从结果来看,最后一步是父母送回12但孩子不能收到12并显示总金额。 因此,任何人都有一些想法,为什么结果不是我的期望,以及如何修改我的代码?

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的父进程只是在没有等待孩子完成的情况下结束。因此,孩子在实际打印结果之前就被杀死了。

您需要在父流程的适当位置添加wait()waitpid()