summaryrefslogtreecommitdiffstats
path: root/man3/sigsetops.3
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--man3/sigsetops.3191
1 files changed, 191 insertions, 0 deletions
diff --git a/man3/sigsetops.3 b/man3/sigsetops.3
new file mode 100644
index 0000000..4172dbc
--- /dev/null
+++ b/man3/sigsetops.3
@@ -0,0 +1,191 @@
+'\" t
+.\" Copyright (c) 1994 Mike Battersby
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" Modified by aeb, 960721
+.\" 2005-11-21, mtk, added descriptions of sigisemptyset(), sigandset(),
+.\" and sigorset()
+.\" 2007-10-26 mdw added wording that a sigset_t must be initialized
+.\" prior to use
+.\"
+.TH SIGSETOPS 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+sigemptyset, sigfillset, sigaddset, sigdelset, sigismember \- POSIX
+signal set operations
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <signal.h>
+.PP
+.BI "int sigemptyset(sigset_t *" set );
+.BI "int sigfillset(sigset_t *" set );
+.PP
+.BI "int sigaddset(sigset_t *" set ", int " signum );
+.BI "int sigdelset(sigset_t *" set ", int " signum );
+.PP
+.BI "int sigismember(const sigset_t *" set ", int " signum );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.BR sigemptyset (),
+.BR sigfillset (),
+.BR sigaddset (),
+.BR sigdelset (),
+.BR sigismember ():
+.nf
+ _POSIX_C_SOURCE
+.fi
+.SH DESCRIPTION
+These functions allow the manipulation of POSIX signal sets.
+.PP
+.BR sigemptyset ()
+initializes the signal set given by
+.I set
+to empty, with all signals excluded from the set.
+.PP
+.BR sigfillset ()
+initializes
+.I set
+to full, including all signals.
+.PP
+.BR sigaddset ()
+and
+.BR sigdelset ()
+add and delete respectively signal
+.I signum
+from
+.IR set .
+.PP
+.BR sigismember ()
+tests whether
+.I signum
+is a member of
+.IR set .
+.PP
+Objects of type
+.I sigset_t
+must be initialized by a call to either
+.BR sigemptyset ()
+or
+.BR sigfillset ()
+before being passed to the functions
+.BR sigaddset (),
+.BR sigdelset (),
+and
+.BR sigismember ()
+or the additional glibc functions described below
+.RB ( sigisemptyset (),
+.BR sigandset (),
+and
+.BR sigorset ()).
+The results are undefined if this is not done.
+.SH RETURN VALUE
+.BR sigemptyset (),
+.BR sigfillset (),
+.BR sigaddset (),
+and
+.BR sigdelset ()
+return 0 on success and \-1 on error.
+.PP
+.BR sigismember ()
+returns 1 if
+.I signum
+is a member of
+.IR set ,
+0 if
+.I signum
+is not a member, and \-1 on error.
+.PP
+On error, these functions set
+.I errno
+to indicate the error.
+.SH ERRORS
+.TP
+.B EINVAL
+.I signum
+is not a valid signal.
+.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 sigemptyset (),
+.BR sigfillset (),
+.BR sigaddset (),
+.BR sigdelset (),
+.BR sigismember (),
+.BR sigisemptyset (),
+.BR sigorset (),
+.BR sigandset ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH VERSIONS
+.SS GNU
+If the
+.B _GNU_SOURCE
+feature test macro is defined, then \fI<signal.h>\fP
+exposes three other functions for manipulating signal
+sets:
+.PP
+.nf
+.BI "int sigisemptyset(const sigset_t *" set );
+.BI "int sigorset(sigset_t *" dest ", const sigset_t *" left ,
+.BI " const sigset_t *" right );
+.BI "int sigandset(sigset_t *" dest ", const sigset_t *" left ,
+.BI " const sigset_t *" right );
+.fi
+.PP
+.BR sigisemptyset ()
+returns 1 if
+.I set
+contains no signals, and 0 otherwise.
+.PP
+.BR sigorset ()
+places the union of the sets
+.I left
+and
+.I right
+in
+.IR dest .
+.BR sigandset ()
+places the intersection of the sets
+.I left
+and
+.I right
+in
+.IR dest .
+Both functions return 0 on success, and \-1 on failure.
+.PP
+These functions are nonstandard (a few other systems provide similar
+functions) and their use should be avoided in portable applications.
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001.
+.SH NOTES
+When creating a filled signal set, the glibc
+.BR sigfillset ()
+function does not include the two real-time signals used internally
+by the NPTL threading implementation.
+See
+.BR nptl (7)
+for details.
+.SH SEE ALSO
+.BR sigaction (2),
+.BR sigpending (2),
+.BR sigprocmask (2),
+.BR sigsuspend (2)