summaryrefslogtreecommitdiffstats
path: root/man3/sigset.3
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--man3/sigset.3266
1 files changed, 266 insertions, 0 deletions
diff --git a/man3/sigset.3 b/man3/sigset.3
new file mode 100644
index 0000000..f7fad4d
--- /dev/null
+++ b/man3/sigset.3
@@ -0,0 +1,266 @@
+'\" t
+.\" Copyright (c) 2005 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH sigset 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+sigset, sighold, sigrelse, sigignore \- System V signal API
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.PP
+.B typedef void (*sighandler_t)(int);
+.PP
+.BI "[[deprecated]] sighandler_t sigset(int " sig ", sighandler_t " disp );
+.PP
+.BI "[[deprecated]] int sighold(int " sig );
+.BI "[[deprecated]] int sigrelse(int " sig );
+.BI "[[deprecated]] int sigignore(int " sig );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.BR sigset (),
+.BR sighold (),
+.BR sigrelse (),
+.BR sigignore ():
+.nf
+ _XOPEN_SOURCE >= 500
+.\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
+.fi
+.SH DESCRIPTION
+These functions are provided in glibc as a compatibility interface
+for programs that make use of the historical System V signal API.
+This API is obsolete: new applications should use the POSIX signal API
+.RB ( sigaction (2),
+.BR sigprocmask (2),
+etc.)
+.PP
+The
+.BR sigset ()
+function modifies the disposition of the signal
+.IR sig .
+The
+.I disp
+argument can be the address of a signal handler function,
+or one of the following constants:
+.TP
+.B SIG_DFL
+Reset the disposition of
+.I sig
+to the default.
+.TP
+.B SIG_IGN
+Ignore
+.IR sig .
+.TP
+.B SIG_HOLD
+Add
+.I sig
+to the process's signal mask, but leave the disposition of
+.I sig
+unchanged.
+.PP
+If
+.I disp
+specifies the address of a signal handler, then
+.I sig
+is added to the process's signal mask during execution of the handler.
+.PP
+If
+.I disp
+was specified as a value other than
+.BR SIG_HOLD ,
+then
+.I sig
+is removed from the process's signal mask.
+.PP
+The dispositions for
+.B SIGKILL
+and
+.B SIGSTOP
+cannot be changed.
+.PP
+The
+.BR sighold ()
+function adds
+.I sig
+to the calling process's signal mask.
+.PP
+The
+.BR sigrelse ()
+function removes
+.I sig
+from the calling process's signal mask.
+.PP
+The
+.BR sigignore ()
+function sets the disposition of
+.I sig
+to
+.BR SIG_IGN .
+.SH RETURN VALUE
+On success,
+.BR sigset ()
+returns
+.B SIG_HOLD
+if
+.I sig
+was blocked before the call,
+or the signal's previous disposition
+if it was not blocked before the call.
+On error,
+.BR sigset ()
+returns \-1, with
+.I errno
+set to indicate the error.
+(But see BUGS below.)
+.PP
+The
+.BR sighold (),
+.BR sigrelse (),
+and
+.BR sigignore ()
+functions return 0 on success; on error, these functions return \-1 and set
+.I errno
+to indicate the error.
+.SH ERRORS
+For
+.BR sigset ()
+see the ERRORS under
+.BR sigaction (2)
+and
+.BR sigprocmask (2).
+.PP
+For
+.BR sighold ()
+and
+.BR sigrelse ()
+see the ERRORS under
+.BR sigprocmask (2).
+.PP
+For
+.BR sigignore (),
+see the errors under
+.BR sigaction (2).
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR sigset (),
+.BR sighold (),
+.BR sigrelse (),
+.BR sigignore ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH STANDARDS
+POSIX.1-2008.
+.TP
+.I sighandler_t
+GNU.
+POSIX.1 uses the same type but without a
+.IR typedef .
+.SH HISTORY
+glibc 2.1.
+SVr4, POSIX.1-2001.
+POSIX.1-2008 marks these functions
+as obsolete, recommending the use of
+.BR sigaction (2),
+.BR sigprocmask (2),
+.BR pthread_sigmask (3),
+and
+.BR sigsuspend (2)
+instead.
+.SH NOTES
+The
+.BR sigset ()
+function provides reliable signal handling semantics (as when calling
+.BR sigaction (2)
+with
+.I sa_mask
+equal to 0).
+.PP
+On System V, the
+.BR signal ()
+function provides unreliable semantics (as when calling
+.BR sigaction (2)
+with
+.I sa_mask
+equal to
+.IR "SA_RESETHAND | SA_NODEFER" ).
+On BSD,
+.BR signal ()
+provides reliable semantics.
+POSIX.1-2001 leaves these aspects of
+.BR signal ()
+unspecified.
+See
+.BR signal (2)
+for further details.
+.PP
+In order to wait for a signal,
+BSD and System V both provided a function named
+.BR sigpause (3),
+but this function has a different argument on the two systems.
+See
+.BR sigpause (3)
+for details.
+.SH BUGS
+Before glibc 2.2,
+.BR sigset ()
+did not unblock
+.I sig
+if
+.I disp
+was specified as a value other than
+.BR SIG_HOLD .
+.PP
+Before glibc 2.5,
+.BR sigset ()
+does not correctly return the previous disposition of the signal
+in two cases.
+First, if
+.I disp
+is specified as
+.BR SIG_HOLD ,
+then a successful
+.BR sigset ()
+always returns
+.BR SIG_HOLD .
+Instead, it should return the previous disposition of the signal
+(unless the signal was blocked, in which case
+.B SIG_HOLD
+should be returned).
+Second, if the signal is currently blocked, then
+the return value of a successful
+.BR sigset ()
+should be
+.BR SIG_HOLD .
+Instead, the previous disposition of the signal is returned.
+These problems have been fixed since glibc 2.5.
+.\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
+.SH SEE ALSO
+.BR kill (2),
+.BR pause (2),
+.BR sigaction (2),
+.BR signal (2),
+.BR sigprocmask (2),
+.BR raise (3),
+.BR sigpause (3),
+.BR sigvec (3),
+.BR signal (7)