Provided by: manpages-ru-dev_4.21.0-2_all 

ИМЯ
sigpause - автоматически разблокирует сигналы и ждёт прерывания
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
#include <signal.h>
int sigpause(int sigmask); /* BSD (но см. ЗАМЕЧАНИЯ) */
int sigpause(int sig); /* System V / UNIX 95 */
ОПИСАНИЕ
Не используйте эту функцию. Вместо неё используйте sigsuspend(2).
Функция sigpause() предназначена для ожидания какого-нибудь сигнала. Она изменяет сигнальную маску
процесса (набор блокируемых сигналов) и ждёт появления сигнала. При прибытии сигнала первоначальная
сигнальная маска восстанавливается.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Если sigpause() возвращает выполнение, то это означает, что она была прервана сигналом и возвращается
значение -1, а errno присваивается значение EINTR.
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
│ Интерфейс │ Атрибут │ Значение │
├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
│ sigpause() │ Безвредность в нитях │ MT-Safe │
└─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
Версия sigpause() из System V стандартизована в POSIX.1-2001. Также она есть в POSIX.1-2008, но помечена
как устаревшая.
ЗАМЕЧАНИЯ
История
Классическая BSD-версия этой функции появилась в 4.2BSD. Она изменяет сигнальную маску процесса на
sigmask. В UNIX 95 стандартизована несовместимая с System V версия этой функции, которая удаляет
сигнальной маски процесса только указанный сигнал sig. Проблемная ситуация двух несовместимых функций с
одним именем была исправлена функцией sigsuspend(2), которая ожидает аргумент с типом sigset_t * (вместо
int).
Замечания, касающиеся Linux
В Linux эта процедура является системным вызовом только на архитектуре Sparc (sparc64).
glibc uses the BSD version if the _BSD_SOURCE feature test macro is defined and none of _POSIX_SOURCE,
_POSIX_C_SOURCE, _XOPEN_SOURCE, _GNU_SOURCE, or _SVID_SOURCE is defined. Otherwise, the System V version
is used, and feature test macros must be defined as follows to obtain the declaration:
• Начиная с glibc 2.26: _XOPEN_SOURCE >= 500
• glibc 2.25 and earlier: _XOPEN_SOURCE
Начиная с glibc 2.19, в <signal.h> представлена только версия System V; в приложениях, которые
использовали BSD-версию sigpause(), нужно заменить его на sigsuspend(2).
СМ. ТАКЖЕ
kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3), sigvec(3), feature_test_macros(7)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан 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 версии 3
или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
на man-pages-ru-talks@lists.sourceforge.net.
Linux man-pages 6.03 5 февраля 2023 г. sigpause(3)