Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


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
     |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)
     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  ver-
     sion  is  used,  and  feature test macros must be defined as follows to
     obtain 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 4.16 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)

/data/webs/external/dokuwiki/data/pages/man/sigpause.txt · Last modified: 2019/05/17 09:47 by

Was this page helpful?-11+1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki