siginterrupt(3) Library Functions Manual siginterrupt(3)

ИМЯ

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

БИБЛИОТЕКА

Стандартная библиотека языка C (libc, -lc)

СИНТАКСИС

#include <signal.h>
[[deprecated]] 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.

ОШИБКИ

Задан некорректный номер сигнала.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
siginterrupt() Безвредность в нитях MT-Unsafe const:sigintr

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

4.3BSD, POSIX.1-2001. Obsolete in POSIX.1-2008, recommending the use of sigaction(2) with the SA_RESTART flag instead.

СМОТРИТЕ ТАКЖЕ

signal(2)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

2 мая 2024 г. Справочные страницы Linux 6.9.1