Что делает waitpid ()? - PullRequest
       4

Что делает waitpid ()?

7 голосов
/ 08 сентября 2010

Какая польза от waitpid()?

Ответы [ 2 ]

9 голосов
/ 08 сентября 2010

Обычно используется для ожидания завершения определенного процесса (или другого изменения состояния, если вы используете специальные флаги), основываясь на его идентификаторе процесса (иначе известном как pid).

Можеттакже может использоваться для ожидания любого из группы дочерних процессов, одного из определенной группы процессов или любого дочернего процесса текущего процесса.

См. здесь для получения подробных сведений.

6 голосов
/ 08 сентября 2010

Блокирует вызывающий процесс до тех пор, пока назначенный дочерний процесс не завершится (или не выполнит какой-либо другой переход, например, остановится).

Как правило, вы будете использовать waitpid вместо универсального wait, когда у вас может быть более одного процесса и заботиться только об одном.

Типичное использование

pid_t child_pid;
int status;

child_pid = fork();

if (child_pid == 0) {
     // in child; do stuff including perhaps exec
} else if (child_pid == -1) {
     // failed to fork 
} else {
     if (waitpid(child_pid, &status, 0) == child_pid) {
          // child exited or interrupted; now you can do something with status
     } else {
          // error etc
     }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...