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 */
If sigpause() returns, it was interrupted by a signal and the return value is -1 with
errno set to EINTR.
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 incompatible System V version of this function, which removes only the specified signal
sig from the process's signal mask. The unfortunate situation with two incompatible functions with the same name was solved by the sigsuspend(2) function, that takes a
sigset_t * argument (instead of an
On Linux, this routine is a system call only on the Sparc (sparc64) architecture.
_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:
Since glibc 2.26: _XOPEN_SOURCE >= 500
Glibc 2.25 and earlier: _XOPEN_SOURCE
This page is part of release 4.15 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 https://www.kernel.org/doc/man-pages/.