Ожидать статуса завершенного дочернего процесса
#include <sys/types.h>#include <sys/wait.h>pid_t wait( int *stat_loc );
NULL или указатель на место, где функция может сохранить статус завершения дочернего процесса.libc
Функция wait() приостанавливает поток до появления информации о статусе одного из завершенных дочерних процессов или отправки сигнала, который завершает процесс или запускает обработчик сигналов. Если информация о статусе доступна до вызова wait(), возврат из функции происходит немедленно.
Макросы статуса
Если указатель stat_loc не NULL, в указанном месте сохраняется статус, с которым завершился дочерний процесс. Макросы ниже, определенные в <sys/wait.h>, извлекают информацию из stat_loc. Аргументом в макросах является целочисленное значение, на которое указывает stat_loc.
POSIX определяет следующие макросы:
8 бит статуса завершения дочернего процесса, если значение WIFEXITED( stat_val ) не равно нулю. WIFSTOPPED( stat_val ) не равно нулю. WIFSTOPPED( stat_val ) не равно нулю. Макросы, не являющиеся частью стандарта POSIX:
Один из макросов WIFEXITED( *stat_loc ) и WIFSIGNALED( *stat_loc ) возвращает ненулевое значение.
Функция waitid() дает больше информации о статусе, чем макросы (не является частью станадарта POSIX).
Идентификатор дочернего процесса. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.
POSIX 1003.1
errno, spawn(), wait4(), waitid(), waitpid()
Предыдущий раздел: Описание API системной библиотеки