ssignal - программная фабрика сигналов
ssignal(3)
программная фабрика сигналов
Other Alias
gsignal
ОБЗОР
#include <signal.h>
typedef void (*sighandler_t)(int);
int gsignal(int signum);
sighandler_t ssignal(int signum, sighandler_t action);
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
gsignal(), ssignal(): _SVID_SOURCE
ОПИСАНИЕ
Не используйте эти функции в Linux. Из-за исторической ошибки, в Linux эти
функции являются псевдонимами
raise(3) и
signal(2), соответственно.
В остальных, System V-подобных системах, эти функции реализуют программные
сигналы, абсолютно отличающиеся от классических вызовов signal(2) и
kill(2). Функция ssignal() определяет действие при получении
программного сигнала с номером signum, выполняемое функцией
gsignal(), и возвращает предыдущее такое действие или SIG_DFL. Функция
gsignal() делает следующее: если для сигнала signum не было определено
действие (или оно SIG_DFL), то ничего не делается и возвращается 0. Если
было определено действие SIG_IGN для signum, то ничего не делается и
возвращается 1. Иначе, действие сбрасывается в SIG_DFL, вызывается
функция действия с параметром signum, а также возвращается значение,
возвращенное этой функцией. Диапазон возможных значений signum различен
(часто он равен 1-15 или 1-17).
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
gsignal()
безвредность в потоках: безвредно (MT-Safe)
ssignal()
безвредность в потоках: безвредно (MT-Safe sigintr)
СООТВЕТСТВИЕ СТАНДАРТАМ
Эти функции доступны в AIX, DG-UX, HP-UX, SCO, Solaris, Tru64. Они
определены, как устаревшие в большинстве этих систем, и некорректны в Linux
libc и glibc. В некоторых системах также есть функции
gsignal_r() и
ssignal_r().