Страница 206 из 324
<b>#include <sys/types.h></b>
<b>#include <sys/wait.h></b>
<b>pid_t wait(int *stat_loc);</b>
Системный вызов wait заставляет родительский процесс сделать паузу до тех пор, пока один из его дочерних процессов не остановится. Вызов возвращает PID дочернего процесса. Обычно это дочерний процесс, который завершился. Сведения о состоянии позволяют родительскому процессу определить статус завершения дочернего процесса, т.е. значение, возвращенное из функции main или переданное функции exit. Если stat_loc не равен пустому указателю, информация о состоянии будет записана в то место, на которое указывает этот параметр.
Интерпретировать информацию о состоянии процесса можно с помощью макросов, описанных в файле sys/wait.h и приведенных в табл. 11.2.
Таблица 11.2
Макрос Описание WIFEXITED(stat_val) Ненулевой, если дочерний процесс завершен нормально WEXITSTATUS(stat_val) Если WIFEXITED ненулевой, возвращает код завершения дочернего процесса WIFSIGNALED(stat_val) Ненулевой, если дочерний процесс завершается неперехватываемым сигналом WTERMSIG(stat_val) Если WIFSIGNALED ненулевой, возвращает номер сигнала WIFSTOPPED(stat_val) Ненулевой, если дочерний процесс остановился WSTOPSIG(stat_val) Если WIFSTOPPED ненулевой, возвращает номер сигнала