#include <signal.h> int sigpause(int sigmask); /* BSD (but see NOTES) */ int sigpause(int sig); /* System V / UNIX 95 */
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.
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 version is used (and _XOPEN_SOURCE must be defined to obtain the declaration). 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).