Unix Man (Справочное руководство)



SIGNAL(2) - часть 2


Действия, предписываемые аргументом func, состоят в следующем:

SIG_DFL - стандартная реакция на сигнал При получении сигнала sig терминировать процесс со всеми завершающими действиями, описанными в ; см. замечание [1] ниже. SIG_IGN - игнорирование сигнала Игнорировать сигнал sig. Сигнал SIGKILL не может игнорироваться. адрес_функции - перехват сигнала При получении сигнала sig выполнить функцию обработки сигнала func; в качестве единственного аргумента функции func передается номер сигнала sig; дополнительные аргументы передаются для сигналов, вырабатываемых аппаратурой. Перед выполнением функции func устанавливается стандартная реакция на полученный сигнал, если только этот сигнал не есть SIGILL или SIGTRAP. Таким образом, чтобы перехватить следующий сигнал sig, нужно вновь обратиться к signal, задав в качестве аргумента func адрес_функции.

После завершения функции обработки сигнала процесс, получивший сигнал, возобновляет выполнение с точки прерывания.

Если сигнал, который должен быть перехвачен, поступил во время выполнения системных вызовов , , или для медленных устройств (таких, как терминал, но не дисковый файл), или системного вызова , который не возвращает немедленно управление из-за того, что порожденный процесс остановлен или терминирован, то функция обработки сигнала выполняется, а затем прерванный системный вызов, скорее всего, возвращает вызывающему процессу значение -1 и присваивает переменной errno значение EINTR.

Системный вызов signal не проверяет корректность аргумента func. Последствия выполнения функции обработки сигнала, заданной некорректным адресом, непредсказуемы.

Сигнал SIGKILL перехватить нельзя.

Выполнение системного вызова signal отменяет полученный, но еще не обработанный сигнал sig, если только этот сигнал не есть SIGKILL.

Системный вызов signal завершается неудачей, если:

[EINVAL] Значение аргумента sig является недопустимым номером сигнала, включая SIGKILL.

ПРИМЕЧАНИЯ


[1]

Если для сигналов, помеченных[1], назначается стандартная реакция (SIG_DFL), то в дополнение к тому, что процесс терминируется, в текущем рабочем каталоге создается файл с образом памяти, если выполняются следующие условия:




    Начало  Назад  Вперед