как настроить мой обработчик фонового процесса

#c #posix #inter-process-communicat

#c #posix #межпроцессный-коммуникат

Вопрос:

итак, я пишу оболочку, которая может иметь как передний план, так и фоновый процесс. У меня есть:

 signal(SIGCHLD, childHandler);
  

и, таким образом, у меня есть обработчик:

 void childHandler(int signum){
    int status, PID;
    PID = waitpid(-1, amp;signum,WNOHANG);
}
  

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

Кто-нибудь может увидеть, если что-то не так / отсутствует?

Комментарии:

1. Хотя формально это не так, мне интересно, почему вы используете ‘signum’ в качестве второго аргумента для ‘waitpid ()’ и не используете ‘status’?

2. Я не вижу ничего плохого в вашем обработчике (кроме того, что сказал алк). Как вы отправляете процессы в фоновый режим?