siginterrupt -
разрешает
сигналам
прерывать
системные
вызовы
Standard C library (
libc,
-lc)
#include <signal.h>
int siginterrupt(int sig, int flag);
siginterrupt():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* glibc <= 2.19: */ _BSD_SOURCE
Функция
siginterrupt()
изменяет
поведение
перезапуска
когда
системный
вызов
прерывается
сигналом
sig.
Если
аргумент
flag
ложен (0), то
системные
вызова
будут
перезапускаться,
если они
прерывались
указанным
сигналом
sig.
Это
поведение Linux
по
умолчанию.
Если
аргумент
flag
истинен (1) и
не
пересылались
данные, то
системный
вызов,
прерванный
сигналом
sig
вернёт -1 и
errno
будет
присвоено
значение
EINTR.
Если
аргумент
flag
истинен (1) и
началась
пересылка
данных, то
системный
вызов
будет
прерван и
вернёт
действительное
количество
пересланных
данных.
The
siginterrupt() function returns 0 on success. It returns -1 if the
signal number
sig is invalid, with
errno set to indicate the
error.
- EINVAL
- Задан
некорректный
номер
сигнала.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
siginterrupt() |
Безвредность
в нитях |
MT-Unsafe const:sigintr |
4.3BSD, POSIX.1-2001. В POSIX.1-2008
функция
siginterrupt()
помечена
как
устаревшая,
вместо неё
рекомендуется
использовать
sigaction(2) с флагом
SA_RESTART.
signal(2)
Русский
перевод
этой
страницы
руководства
был сделан
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]