Ожидать статуса завершенного дочернего процесса
#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 системной библиотеки