NOTE: click here if you get an empty page.

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 */ int sigpause(int sig); /* System V / Unix95 */


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.


The classical BSD version of this function appeared in 4.2BSD. It sets the process's signal mask to sigmask. Unix95 standardized the incom- patible System V version of this function, which removes only the spec- ified signal sig from the process' signal mask. The unfortunate situa- tion with two incompatible functions with the same name was solved by the sigsuspend(2) function, that takes a sigset_t * parameter (instead of an int). On Linux, this routine is a system call only on the Sparc (sparc64) architecture. Libc4 and libc5 only know about the BSD version. Glibc uses the BSD version unless _XOPEN_SOURCE is defined.


kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3), sigvec(3) Linux 2.6 2005-12-01 SIGPAUSE(3)

1994 Man-cgi 1.15, Panagiotis Christias <>