2

我知道 wait() 和 waitpid() 之间的区别之一是 waitpid 有一个 WNOHANG 选项,它告诉 waitpid 如果有运行的子进程尚未终止,则不要阻塞。如:

while (  (pid = waitpid(-1, &stat, WNOHANG)) > 0)
    printf("Child %d terminated\n", pid);

如果我使用 wait() 而不是 waitpid(),如果有运行的子进程尚未终止,则无法阻止 wait() 阻塞。但是,我想知道 wait() 在这里是否可以正常工作,即使它可能会阻塞。

4

1 回答 1

-2

我们不能在循环中调用等待,因为如果有运行的子进程尚未终止,则无法阻止等待阻塞。

于 2016-10-26T03:36:47.570 回答