Посмотрим, понял ли я вас.У вас есть список детей, и вы запускаете цикл на / proc в своем обработчике SIGCLD, чтобы увидеть, какие дети еще живы, не так ли?
Это не очень обычно, ... и этоУжасно,
Обычно вы запускаете цикл while((pid = waitpid(-1, &status, WNOHANG)))
в обработчике SIGCLD и используете возвращенный pid и макросы Wxxx, чтобы поддерживать список своих детей в актуальном состоянии.
Обратите внимание, чтоwait()
и waitpid()
безопасны для асинхронного сигнала.Функции, которые вы вызываете для проверки /proc
, вероятно, нет.