SIGPAUSE(3) Linux Programmer's Manual SIGPAUSE(3)
sigpause - atomically release blocked signals and wait for interrupt
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).
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
kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3),
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
Linux 2017-09-15 SIGPAUSE(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2022
All Rights Reserved.