diff options
author | Michael Kerrisk <mtk.manpages@gmail.com> | 2005-11-29 14:58:23 +0000 |
---|---|---|
committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2005-11-29 14:58:23 +0000 |
commit | e3f86a1c914cd1ec5a80fa5e74d19de2ae62b946 (patch) | |
tree | 5f3a8bda0f84f6089bc2c02d808513ca83f9c066 /man3/sigpause.3 | |
parent | 2368c063310d57fad3342751dbebeddd82495f22 (diff) |
Moved to section 3.
Diffstat (limited to 'man3/sigpause.3')
-rw-r--r-- | man3/sigpause.3 | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/man3/sigpause.3 b/man3/sigpause.3 new file mode 100644 index 00000000..75f70d7b --- /dev/null +++ b/man3/sigpause.3 @@ -0,0 +1,83 @@ +.\" Copyright (C) 2004 Andries Brouwer (aeb@cwi.nl) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.TH SIGPAUSE 2 2004-05-10 "Linux 2.6" "Linux Programmer's Manual" +.SH NAME +sigpause \- atomically release blocked signals and wait for interrupt +.SH SYNOPSIS +.nf +.B #include <signal.h> +.sp +.BI "int sigpause(int " sigmask "); /* BSD */" +.sp +.BI "int sigpause(int " sig "); /* Unix95 */" +.fi +.SH DESCRIPTION +Don't use this function. Use +.BR sigsuspend (2) +instead. +.LP +The function +.BR sigpause () +is designed to wait for some signal. +It changes the process' 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. +.SH "RETURN VALUE" +If +.BR sigpause () +returns, it was interrupted by a signal and the return value is \-1 +with +.I errno +set to +.BR EINTR . +.SH HISTORY +The classical BSD version of this function appeared in 4.2BSD. +It sets the process' signal mask to +.IR sigmask . +When the number of signals was increased above 32, this version +was replaced by the incompatible Unix95 one, which removes only the +specified signal +.I sig +from the process' signal mask. +.\" __xpg_sigpause: Unix 95, spec 1170, SVID, SVR4, XPG +The unfortunate situation with two incompatible functions with the +same name was solved by the +.BR \%sigsuspend (2) +function, that takes a +.B "sigset_t *" +parameter (instead of an int). +.LP +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. +.\" .SH NOTE +.\" For the BSD version, one usually uses a zero +.\" .I sigmask +.\" to indicate that no signals are to be blocked. +.SH "SEE ALSO" +.BR kill (2), +.BR sigaction (2), +.BR sigblock (2), +.BR sigprocmask (2), +.BR sigsuspend (2), +.BR sigvec (2) |