它会阻止调用进程,直到指定的子进程退出(或进行其他一些转换,例如被停止).
通常,当您可能有多个流程并且只关心一个流程时,您将使用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
}
}
Run Code Online (Sandbox Code Playgroud)