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