Блокирует вызывающий процесс до тех пор, пока назначенный дочерний процесс не завершится (или не выполнит какой-либо другой переход, например, остановится).
Как правило, вы будете использовать 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
}
}