在我的程序中,子进程应该从键盘接收一些值,并发送到父进程。父进程应计算总和并返回子进程。我的计划如下所示:
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并显示总金额。 因此,任何人都有一些想法,为什么结果不是我的期望,以及如何修改我的代码?
提前致谢。
答案 0 :(得分:1)
您的父进程只是在没有等待孩子完成的情况下结束。因此,孩子在实际打印结果之前就被杀死了。
您需要在父流程的适当位置添加wait()
或waitpid()
。