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.