sysv_signal -
обрабатывает
сигналы
согласно
семантике
System V
Standard C library (
libc,
-lc)
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t sysv_signal(int signum, sighandler_t handler);
Функция
sysv_signal()
ожидает те
же
аргументы
и
выполняет
ту же
задачу, что
и
signal(2).
Однако
sysv_signal()
предоставляет
ненадёжную
семантику
сигналов System V,
то есть: a)
обработчик
сигнала
сбрасывается
в значение
по
умолчанию,
при его
вызове; b)
доставка
последующих
экземпляров
сигнала не
блокируется
на время
выполнения
обработчика
сигнала; c)
если
обработчик
сигнала
прерывает
(некоторые)
блокирующие
системные
вызовы, то
системный
вызов
автоматически
не
перезапускается.
Функция
sysv_signal()
возвращает
предыдущее
значение
обработчика
сигнала
или
SIG_ERR при
ошибке.
Как в
signal(2).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
sysv_signal() |
Безвредность
в нитях |
MT-Safe |
Эта
функция не
является
стандартной.
Избегайте
использования
sysv_signal(),
используйте
вместо неё
sigaction(2).
В старых
Linux-системах
sysv_signal() и
signal(2)
были
эквивалентны.
Однако в
новых
системах
signal(2)
предоставляет
надежную
семантику
сигналов.
Подробности
смотрите в
signal(2).
Используемый
параметр
sighandler_t
является
расширением
GNU; данный тип
определён
только в
том случае,
если
определён
макрос
_GNU_SOURCE.
sigaction(2),
signal(2),
bsd_signal(3),
signal(7)
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]