Завершение дочернего процесса перед waitpid () - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь использовать waitpid(), чтобы "заморозить" родительский процесс до завершения дочернего процесса, но что-то я получаю -1 из функции waitpid().
Я думаю, это потому, что дочерние элементы закончили до того, как прибудет родительский процессна waitpid().
Ты хоть представляешь, как я могу это исправить?Меня не волнует возвращаемое значение ребенка.
Спасибо!
код:

  if((subProc = fork()) == -1) {
            printErrorMsg();
        }
        //exec the command in the sub process
        if (subProc == 0){
           //somethine...
}
        else {
          if (waitpid(subProc, NULL, 0) == -1 {
               _exit(1);
            }
        }

1 Ответ

0 голосов
/ 25 марта 2019

Спасибо за помощь, я редактирую код:

if ((waitpid(subProc, NULL, NO_OPTIONS) == ERROR_SIG) &&  errno != ECHILD) {
                _exit(EXIT_FAILURE);
            };

и все отлично работает:)

...