waitpid()是什么?

9
< p > waitpid()有什么用途?

2个回答

10

这通常用于等待特定进程完成(或者如果使用特殊标志的话,等待其它状态的改变),基于其进程 ID(也称为pid)。

它还可用于等待一组子进程中的任何一个,可以是来自特定进程组中的一个或当前进程的任何子进程。

详见此处了解更多信息。


8

当一个指定的子进程退出(或发生其他转换,如停止)时,它会阻塞调用进程。

通常情况下,当你有多个进程且只关心其中一个进程时,你会使用waitpid而不是通用的wait

一个典型的用法是

pid_t child_pid;
int status;

child_pid = fork();

if (child_pid == 0) {
     // in child; do stuff including perhaps exec
} else if (child_pid == -1) {
     // failed to fork 
} else {
     if (waitpid(child_pid, &status, 0) == child_pid) {
          // child exited or interrupted; now you can do something with status
     } else {
          // error etc
     }
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接