我应该将什么参数传递给wait(),以便在继续
之前等待所有子进程终止答案 0 :(得分:5)
wait
只等待一个孩子。您应该在循环中调用wait(NULL)
,直到它-1
返回errno == ECHILD
:
while (wait(NULL) != -1 || errno != ECHILD) { }
ECHILD (for wait())
呼唤 过程没有任何不受欢迎的 孩子。
WNOHANG没有定下来 未阻止信号或SIGCHLD 抓住;见信号(7)。EINTR
因此,您必须检查ECHILD,以免被捕获的信号所迷惑。