[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Ожидание изменения состояния подпроцесса

waitpid(2) приостанавливает исполнение вызывающего процесса, пока один
из его потомков не изменит состояние. Если такое изменение произошло
до вызова waitpid(2), он возвращает управление немедленно. pid задает
набор подпроцессов, для которых запрашивается состояние.

            pid             состояние запрашивается

             -1              для всех подпроцессов

            > 0      для подпроцесса с идентификатором pid

             0    для   любого    подпроцесса   с    тем   же
                                    идентификатором группы,  что у  вызывающего
                                    процесса

            < -1  для любого  подпроцесса, чей  идентификатор
                                    группы процессов равен -pid


Параметр options формируется побитовым ИЛИ следующих значений, которые
описаны в <sys/wait.h>
   WNOHANG     то же значение, что и для waitid(2).

   WUNTRACED   то же, что WSTOPPED для waitid(2).

   WCONTINUED  то же, что и для waitid(2).

   WNOWAIT     то же, что и для waitid(2).

Функция waitpid(2) просто вызывает waitid(2), добавив опции
WEXITED | WTRAPPED к значению соответствующего параметра waitpid(2).
Если передан ненулевой указатель stat_loc, то слово состояния
подпроцесса будет сохранено по этому указателю. Затем полученное
значение может быть проанализировано макросами из wstat(5).
Новое в SVR4: waitpid(2)

               ОЖИДАНИЕ ИЗМЕНЕНИЯ СОСТОЯНИЯ ПОДПРОЦЕССА
waitpid(2)

ИМЯ

      waitpid - ожидание изменения состояния процесса

ИСПОЛЬЗОВАНИЕ

      #include <sys/types.h>
      #include <sys/wait.h>
      pid_t waitpid(pid_t pid, int *stat_loc,
             int options);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

      успех - идентификатор подпроцесса или 0, если WHOHANG

      неуспех - -1 и errno установлена