我知道 wait() 和 waitpid() 之间的区别之一是 waitpid 有一个 WNOHANG 选项,它告诉 waitpid 如果有运行的子进程尚未终止,则不要阻塞。如:
while ( (pid = waitpid(-1, &stat, WNOHANG)) > 0)
printf("Child %d terminated\n", pid);
如果我使用 wait() 而不是 waitpid(),如果有运行的子进程尚未终止,则无法阻止 wait() 阻塞。但是,我想知道 wait() 在这里是否可以正常工作,即使它可能会阻塞。