Provided by: manpages-ru-dev_4.18.1-1_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.