Ожидать изменения состояния в любом из дочерних процессов
#include <sys/wait.h>pid_t wait3( int *stat_locint options,struct rusage *resource_usage );
NULL
или указатель на место, где функция может сохранить статус завершения дочернего процесса. Для ознакомления со справочными материалами о макросах, которые извлекают информацию из статуса, см. Макросы статуса.NULL
или указатель на struct rusage, где функция может сохранить информацию об использовании ресурсов.libc
Функция wait3() позволяет вызывающему потоку получать информацию о состоянии для указанных дочерних процессов.
Вызов:
wait3( stat_loc, options, resource_usage );
эквивалентен вызову:
waitpid( (pid_t)-1, stat_loc, options );
за исключением того, что при успешном завершении, если аргумент resource_usage не является нулевым указателем, указанная в третьем аргументе struct rusage, заполняется для дочернего процесса, идентифицируемого возвращаемым значением.
Так же эквивалентен:
wait4( (pid_t)-1, stat_loc, options, resource_usage );
Если статус дочернего процесса доступен, значение равно идентификатору дочернего процесса, для которого сообщен статус.
При появлении сигнала функция возвращает -1
, а переменной errno присваивается значение EINTR
.
Ноль, если wait3() вызван с WNOHANG
в options и есть хотя бы один дочерний процесс, указанный в pid, для которого статус недоступен, или если статус недоступен для любого процесса указанного в pid.
В остальных случаях функция возвращает (pid_t
)-1
и errno.
Unix
Для новых приложений следует использовать waitpid().
struct rusage, exit(), fork(), pause(), wait4(), waitid(), waitpid()
Предыдущий раздел: Описание API системной библиотеки