waitpid()的用途是什么
发布于 2010-09-08 13:31:59
它通常用于根据进程ID (也称为pid),等待特定进程完成(或者,如果使用特殊标志,则更改状态)。
它还可以用于等待一组子进程中的任何一个进程,可以是来自特定进程组的进程,也可以是当前进程的任何子进程。
有关详细信息,请参阅here。
发布于 2010-09-08 14:19:19
它会阻塞调用进程,直到指定的子进程退出(或者进行一些其他转换,比如停止)。
通常,当您可能有多个进程并且只关心一个进程时,您将使用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
}
}https://stackoverflow.com/questions/3664854
复制相似问题