SSIGNAL(3C) SSIGNAL(3C)
НАЗВАНИЕ
ssignal, gsignal - программный вариант механизма сигна-
лов
СИНТАКСИС
#include
int (*ssignal (sig, action)) ( )
int sig, (*action) ( );
int gsignal (sig)
int sig;
ОПИСАНИЕ
Функции ssignal и gsignal представляют собой программ-
ную реализацию механизма передачи сигналов, похожего на
тот, что обеспечивается системным вызовом signal(2).
Эти функции используются стандартной библиотекой языка
C, чтобы предоставить пользователю возможность нестан-
дартной обработки ошибочных ситуаций. Функции ssignal и
gsignal можно использовать и в иных целях.
Программные сигналы, доступные пользователю, обознача-
ются целыми числами от 1 до 16 включительно. Выполнение
функции ssignal ассоциирует действие, action, с прог-
раммным сигналом sig; возбуждение сигнала sig осуществ-
ляется функцией gsignal. Возбуждение сигнала приводит к
выполнению ассоциированного с ним действия.
В качестве первого аргумента функции ssignal передается
число, идентифицирующее сигнал, для которого требуется
установить действие. Второй аргумент определяет это
действие; оно может быть задано как именем функции (оп-
ределенной пользователем), так и одной из констант
SIG_DFL (стандартное действие) или SIG_IGN (игнорирова-
ние). Функция ssignal возвращает указатель на функцию,
определяющую предыдущее действие, установленное для
этого сигнала; если нет ранее установленного действия
или номер сигнала некорректен, то возвращается констан-
та SIG_DFL.
Функция gsignal возбуждает сигнал, заданный аргументом
sig, при этом:
1. Если для обработки сигнала sig была установлена
пользовательская функция, то сначала восстанавли-
вается стандартная реакция на возбужденный сигнал,
а затем вызывается пользовательская функция с ар-
гументом sig. Функция gsignal возвращает значение,
переданное ей пользовательской функцией обработки
сигнала.
2. Если действием для сигнала sig является SIG_IGN,
(сигнал игнорируется), то функция gsignal возвра-
щает 1 и не предпринимает каких-либо других дейст-
вий.
3. Если действием для сигнала sig является SIG_DFL
(стандартная реакция), то функция gsignal возвра-
щает 0 и не предпринимает каких-либо других дейст-
вий.
4. Если номер сигнала sig не является корректным или
для сигнала sig не специфицировано действие, то
функция gsignal возвращает значение 0 и не пред-
принимает каких-либо других действий.
СМ. ТАКЖЕ
signal(2), sigset(2).
ПРИМЕЧАНИЯ
Есть несколько дополнительных сигналов с номерами, вы-
ходящими за пределы интервала от 1 до 16. Они использу-
ются функциями из стандартной библиотеки языка C для
указания ошибочных ситуаций. В результате некоторые но-
мера сигналов за пределами интервала от 1 до 16 являют-
ся допустимыми, хотя их использование может конфликто-
вать с функциями из стандартной библиотеки языка C.
|