Czy muszę coś zrobić z programem obsługi SIGCHLD, jeśli używam wait (), aby czekać na zakończenie 1 dziecka na raz?
Mam program, który rozciąga się na dziecko, aby wykonać jakąś pracę, ale w tym czasie robię tylko jedno dziecko. ja używamwait()
czy muszę czekać, aż dziecko się skończy?SIGCHLD
jak również (np. wyłączyć obsługę)?
W mojej sytuacji otrzymuję wartośćEINTR
werrno
co prowadzi mnie do myślenia, że muszę maskowaćSIGCHLD
.
W szerokich liniach jest to program:
czytaj argumentydla (lista prac do wykonania)fork()
jeśli dziecko,execlp()
do programu pracyjeśli rodzic,wait()
na koniec dzieckagdy dziecko się kończy, rodzic zapętla się do następnego elementu pracy