wait () / waitpid () возвращает 1, а не pid дочернего элемента, как это исправить ?

это продолжение Как втиснуть дополнительные параметры в функцию reaper, когда родитель получает сигнал убить ребенка (c)?

В моем жатке (), Я пытаюсь получить pid ребенка, который родитель вот-вот закроет (небрежное слово). но wait () не возвращает идентификатор ребенка; вместо этого он возвращает 1. Я нигде не могу найти документ для возвращаемого значения 1. Есть какие-нибудь предупреждения?

void    reaper(int sig)
{
    int status, killedpid;

    while(killedpid = (/*waitpid(-1, &status, WNOHANG)*/wait(&status)) >= 0)
    {
        printf("reaper %d killed %d\n", getpid(), killedpid);
    }
}

Мои результаты:

reaper 5933 killed 1 //actual child pid is 5936

Заранее спасибо!

5
задан Community 23 May 2017 в 11:50
поделиться