[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Формирование слова состояния wait(2)

Диаграмма на следующей странице показывает, как код завершения
передается от системного вызова exit(2) системному вызову wait(2)
родительского процесса. Значение младшего байта параметра exit(2)
помещается, как показано, во второй по старшинству байт целого числа,
на которое указывает параметр wait(2) (слово состояния) . Младший байт
этого числа устанавливается в ноль. Код завершения не может быть
больше одного байта.
Если подпроцесс принудительно завершен сигналом, младший байт слова
состояния содержит номер сигнала, а следующий по старшинству байт
равен нулю.
Макросы, перечисленные на странице Руководства WSTAT(5) и определенные
в <sys/wait.h> могут быть использованы для анализа слова состояния
wait. Они обсуждаются вкратце.
Если один из системных вызовов для работы с сигналами установил
реакцию на SIGCLD в игнорирование, то подпроцессы этого процесса не
будут при завершении переходить в состояние зомби (см. signal(2)).
Если процесс последовательно ожидает все свои порожденные процессы, он
будет остановлен, пока все они не завершатся. Затем wait возвратит -1
и установит errno в ECHILD.