我希望我的父进程等到所有子进程和子进程的子进程完成。我使用过while(waitpid(-1,NULL,0))
,但它只是创建了一个无限循环。我还使用了waitpid(pid_child,&status,WNOHANG)
,但它只是在子进程结束而不是子进程的子进程时结束。
注意:pid_child
是我在父进程中从fork()
获得的PID。
答案 0 :(得分:4)
一个过程可能只等待其直接的孩子。它不能等待孩子的孩子。
你能做的最好的事情就是让孩子们等待孩子的孩子,让父母等待孩子。