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

         

SSIGNAL(3C)


SSIGNAL(3C)

НАЗВАНИЕ


ssignal, gsignal - программный вариант механизма сигналов

СИНТАКСИС

#include <signal.h>

int (*ssignal (sig, action)) ( ) int sig, (*action) ( );

int gsignal (sig) int sig;

ОПИСАНИЕ


Функции ssignal и gsignal представляют собой программную реализацию механизма передачи сигналов, похожего на тот, что обеспечивается системным вызовом . Эти функции используются стандартной библиотекой языка 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 и не предпринимает каких-либо других действий.

СМ. ТАКЖЕ


, .

ПРИМЕЧАНИЯ


Есть несколько дополнительных сигналов с номерами, выходящими за пределы интервала от 1 до 16. Они используются функциями из стандартной библиотеки языка C для указания ошибочных ситуаций. В результате некоторые номера сигналов за пределами интервала от 1 до 16 являются допустимыми, хотя их использование может конфликтовать с функциями из стандартной библиотеки языка C.



Содержание раздела