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

ИМЯ

       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)