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.\" @(#)sigprocmask.2 8.1 (Berkeley) 6/4/93 29.\" 30.Dd May 7, 2010 31.Dt SIGPROCMASK 2 32.Os 33.Sh NAME 34.Nm sigprocmask 35.Nd manipulate current signal mask 36.Sh LIBRARY 37.Lb libc 38.Sh SYNOPSIS 39.In signal.h 40.Ft int 41.Fo sigprocmask 42.Fa "int how" 43.Fa "const sigset_t * restrict set" 44.Fa "sigset_t * restrict oset" 45.Fc 46.Sh DESCRIPTION 47The 48.Fn sigprocmask 49system call examines and/or changes the current signal mask (those signals 50that are blocked from delivery). 51Signals are blocked if they are members of the current signal mask set. 52.Pp 53If 54.Fa set 55is not null, the action of 56.Fn sigprocmask 57depends on the value of the 58.Fa how 59argument. 60The signal mask is changed as a function of the specified 61.Fa set 62and the current mask. 63The function is specified by 64.Fa how 65using one of the following values from 66.In signal.h : 67.Bl -tag -width SIG_UNBLOCK 68.It Dv SIG_BLOCK 69The new mask is the union of the current mask and the specified 70.Fa set . 71.It Dv SIG_UNBLOCK 72The new mask is the intersection of the current mask 73and the complement of the specified 74.Fa set . 75.It Dv SIG_SETMASK 76The current mask is replaced by the specified 77.Fa set . 78.El 79.Pp 80If 81.Fa oset 82is not null, it is set to 83the previous value of the signal mask. 84When 85.Fa set 86is null, 87the value of 88.Fa how 89is insignificant and the mask remains unset 90providing a way to examine the signal mask without modification. 91.Pp 92The system 93quietly disallows 94.Dv SIGKILL 95or 96.Dv SIGSTOP 97to be blocked. 98.Pp 99In threaded applications, 100.Xr pthread_sigmask 3 101must be used instead of 102.Fn sigprocmask . 103.Sh RETURN VALUES 104.Rv -std sigprocmask 105.Sh ERRORS 106The 107.Fn sigprocmask 108system call will fail and the signal mask will be unchanged if one 109of the following occurs: 110.Bl -tag -width Er 111.It Bq Er EINVAL 112The 113.Fa how 114argument 115has a value other than those listed here. 116.El 117.Sh SEE ALSO 118.Xr kill 2 , 119.Xr sigaction 2 , 120.Xr sigpending 2 , 121.Xr sigsuspend 2 , 122.Xr fpsetmask 3 , 123.Xr pthread_sigmask 3 , 124.Xr sigsetops 3 125.Sh STANDARDS 126The 127.Fn sigprocmask 128system call is expected to 129conform to 130.St -p1003.1-90 . 131