ИМЯ

siginterrupt - разрешает сигналам прерывать системные вызовы

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#include <signal.h>
int siginterrupt(int sig, int flag);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
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]

Recommended readings

Pages related to siginterrupt you should read also: