SIGPAUSE(3)                Linux Programmer's Manual               SIGPAUSE(3)

       sigpause - atomically release blocked signals and wait for interrupt

       #include <signal.h>

       int sigpause(int sigmask);  /* BSD (but see NOTES) */

       int sigpause(int sig);      /* System V / UNIX 95 */

       Don't use this function.  Use sigsuspend(2) instead.

       The  function  sigpause()  is  designed  to  wait  for some signal.  It
       changes the process's signal mask (set of blocked  signals),  and  then
       waits  for  a signal to arrive.  Upon arrival of a signal, the original
       signal mask is restored.

       If sigpause() returns, it was interrupted by a signal  and  the  return
       value is -1 with errno set to EINTR.

       For  an  explanation  of  the  terms  used  in  this  section,  see at-

       |Interface  | Attribute     | Value   |
       |sigpause() | Thread safety | MT-Safe |
       The System V version of sigpause() is standardized in POSIX.1-2001.  It
       is also specified in POSIX.1-2008, where it is marked obsolete.

       The classical BSD version of this function appeared in 4.2BSD.  It sets
       the process's signal mask to sigmask.  UNIX 95 standardized the  incom-
       patible System V version of this function, which removes only the spec-
       ified signal sig from the process's signal mask.  The unfortunate situ-
       ation  with two incompatible functions with the same name was solved by
       the sigsuspend(2) function, that takes a sigset_t *  argument  (instead
       of an int).

   Linux notes
       On Linux, this routine is a system call only on the Sparc (sparc64) ar-

       Glibc uses the BSD version if the _BSD_SOURCE feature test macro is de-
       fined   and  none  of  _POSIX_SOURCE,  _POSIX_C_SOURCE,  _XOPEN_SOURCE,
       _GNU_SOURCE, or _SVID_SOURCE is defined.  Otherwise, the System V  ver-
       sion is used, and feature test macros must be defined as follows to ob-
       tain the declaration:

       *  Since glibc 2.26: _XOPEN_SOURCE >= 500

       *  Glibc 2.25 and earlier: _XOPEN_SOURCE

       Since glibc 2.19, only the System V version is exposed  by  <signal.h>;
       applications that formerly used the BSD sigpause() should be amended to
       use sigsuspend(2).

       kill(2),  sigaction(2),  sigprocmask(2),  sigsuspend(2),   sigblock(3),
       sigvec(3), feature_test_macros(7)

       This  page  is  part of release 5.05 of the Linux man-pages project.  A
       description of the project, information about reporting bugs,  and  the
       latest     version     of     this    page,    can    be    found    at

Linux                             2017-09-15                       SIGPAUSE(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2024 Hurricane Electric. All Rights Reserved.