xref: /freebsd/lib/libc/gen/sigsetops.3 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)sigsetops.3	8.1 (Berkeley) 6/4/93
29.\" $FreeBSD$
30.\"
31.Dd October 29, 2019
32.Dt SIGSETOPS 3
33.Os
34.Sh NAME
35.Nm sigemptyset ,
36.Nm sigfillset ,
37.Nm sigaddset ,
38.Nm sigandset ,
39.Nm sigdelset ,
40.Nm sigisemptyset ,
41.Nm sigismember ,
42.Nm sigorset
43.Nd manipulate signal sets
44.Sh LIBRARY
45.Lb libc
46.Sh SYNOPSIS
47.In signal.h
48.Ft int
49.Fn sigemptyset "sigset_t *set"
50.Ft int
51.Fn sigfillset "sigset_t *set"
52.Ft int
53.Fn sigaddset "sigset_t *set" "int signo"
54.Ft int
55.Fn sigandset "sigset_t *set" "const sigset_t *left" "const sigset_t *right"
56.Ft int
57.Fn sigdelset "sigset_t *set" "int signo"
58.Ft int
59.Fn sigisemptyset "const sigset_t *set"
60.Ft int
61.Fn sigismember "const sigset_t *set" "int signo"
62.Ft int
63.Fn sigorset "sigset_t *set" "const sigset_t *left" "const sigset_t *right"
64.Sh DESCRIPTION
65These functions manipulate signal sets stored in a
66.Fa sigset_t .
67Either
68.Fn sigemptyset
69or
70.Fn sigfillset
71must be called for every object of type
72.Fa sigset_t
73before any other use of the object.
74.Pp
75The
76.Fn sigemptyset
77function initializes a signal set to be empty.
78.Pp
79The
80.Fn sigfillset
81function initializes a signal set to contain all signals.
82.Pp
83The
84.Fn sigaddset
85function adds the specified signal
86.Fa signo
87to the signal set.
88.Pp
89The
90.Fn sigandset
91function sets the specified
92.Fa set
93to the logical AND of all signals from the
94.Fa left
95and
96.Fa right
97signal sets.
98.Pp
99The
100.Fn sigdelset
101function deletes the specified signal
102.Fa signo
103from the signal set.
104.Pp
105The
106.Fn sigisemptyset
107function returns whether the specified
108.Fa set
109is empty or not.
110.Pp
111The
112.Fn sigismember
113function returns whether a specified signal
114.Fa signo
115is contained in the signal set.
116.Pp
117The
118.Fn sigorset
119function sets the specified
120.Fa set
121to the logical OR of all signals from the
122.Fa left
123and
124.Fa right
125signal sets.
126.Sh RETURN VALUES
127The
128.Fn sigisemptyset
129function returns 1
130if the set is empty, 0 otherwise.
131.Pp
132The
133.Fn sigismember
134function returns 1
135if the signal is a member of the set,
1360 otherwise.
137.Pp
138The other functions return 0 upon success.
139A \-1 return value
140indicates an error occurred and the global variable
141.Va errno
142is set to indicate the reason.
143.Sh ERRORS
144These functions could fail if one of the following occurs:
145.Bl -tag -width Er
146.It Bq Er EINVAL
147.Fa signo
148has an invalid value.
149.El
150.Sh SEE ALSO
151.Xr kill 2 ,
152.Xr sigaction 2 ,
153.Xr sigpending 2 ,
154.Xr sigprocmask 2 ,
155.Xr sigsuspend 2
156.Sh STANDARDS
157The
158.Fn sigandset ,
159.Fn sigisemptyset ,
160and
161.Fn sigorset
162functions are FreeBSD extensions, compatible with functions of the same name
163provided by both musl libc and GNU libc.
164.Pp
165The rest of these functions are defined by
166.St -p1003.1-88 .
167