Хотя пользователи могут посылать SIGCHLD
любым процессам, которыми они владеют, программы не обладают возможностью должным образом реагировать на непредвиденные сигналы.
66
В табл. 12.2 перечислены функции, которые могут отсутствовать в некоторых, а может, даже во всех системах Linux. Мы включаем все функции, которые POSIX специфицирует в качестве безопасных для вызова из обработчиков сигналов.
67
Термин
68
До появления стандарта POSIX приложение могло обращаться к struct sigcontext
за информацией того же рода, что теперь представляет siginfo_t
, и термин 'контекст' остался от этой старой реализации.
69
Этот третий параметр на самом деле указывает на структуру struct ucontext
, которая позволяет процессам выполнять полное переключение контекстов в пользовательском пространстве. Данные вопросы выходят за пределы тем, рассматриваемых в настоящей книге, но это хорошо документировано в Single Unix Specification.
70
Существует гораздо больше значений si_code
, нежели мы обсуждаем здесь, и эти значения имеют отношение к асинхронному вводу-выводу, очередям сообщений и таймерам реального времени, что выходит за границы тем, обсуждаемых в книге.
71
Он также принимает специальное значение SIGTRAP
, которое используется отладчиками, и SIGPOLL
, применяемое механизмом ненадежного асинхронного ввода- вывода. Ни один из них не описан в настоящей книге, поэтому подробности об этих сигналах не включены в табл. 12.3.
72
Вспомните, что SIGCHLD
посылается не только при завершении дочернего процесса, но и при его приостановке или возобновлении работы.
73
Дополнительные примеры обработки сигналов вы можете найти в программах для аренды файлов (глава 13), управления терминалом (глава 16) и работы с интервальными таймерами (глава 18).
74
Это похоже на тип sigset_t
, используемый для шаблонов сигналов.
75
Когда сетевой сокет прослушивается (listen()
) и готов к приему (accept()
), считается, что он готов к считыванию для целей select()
; информацию о сокетах можно найти в главе 17.
76
Если сравнить это с параметром numfds
для poll()
, то можно понять, почему возникают затруднения.
77
Кроме некоторых экспериментальных ядер серии 2.1.
78