summaryrefslogtreecommitdiffstats
path: root/man2/sigpause.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/sigpause.2')
-rw-r--r--man2/sigpause.283
1 files changed, 83 insertions, 0 deletions
diff --git a/man2/sigpause.2 b/man2/sigpause.2
new file mode 100644
index 000000000..0f562fa31
--- /dev/null
+++ b/man2/sigpause.2
@@ -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
+.B 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
+.B 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)