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.\" @(#)sigpause.2 8.1 (Berkeley) 6/2/93 29.\" 30.\" Part of the content of the man page was derived from 31.\" The Open Group Base Specifications Issue 7 32.\" IEEE Std 1003.1-2008 33.\" 34.Dd June 2, 1993 35.Dt SIGPAUSE 2 36.Os 37.Sh NAME 38.Nm sighold , 39.Nm sigignore , 40.Nm sigpause , 41.Nm sigrelse , 42.Nm sigset 43.Nd legacy interface for signal management 44.Sh LIBRARY 45.Lb libc 46.Sh SYNOPSIS 47.In signal.h 48.Ft int 49.Fn sighold "int sig" 50.Ft int 51.Fn sigignore "int sig" 52.Ft int 53.Fn xsi_sigpause "int sigmask" 54.Ft int 55.Fn sigrelse "int sig" 56.Ft void (*)(int) 57.Fn sigset "int" "void (*disp)(int)" 58.Ft int 59.Fn sigpause "int sigmask" 60.Sh DESCRIPTION 61.Sy This interface is made obsolete by 62.Xr sigsuspend 2 63.Sy and 64.Xr sigaction 2 . 65.Pp 66The 67.Fn sigset 68function modifies signal dispositions. 69The 70.Fa sig 71argument specifies the signal, which may be any signal except 72.Dv SIGKILL 73and 74.Dv SIGSTOP . 75The 76.Fa disp 77argument specifies the signal's disposition, 78which may be 79.Dv SIG_DFL , 80.Dv SIG_IGN , 81or the address of a signal handler. 82If 83.Fn sigset 84is used, and 85.Fa disp 86is the address of a signal handler, the 87system adds 88.Fa sig 89to the signal mask of the calling process before executing the signal 90handler; when the signal handler returns, the system restores the 91signal mask of the calling process to its state prior to the delivery 92of the signal. 93In addition, if 94.Fn sigset 95is used, and 96.Fa disp 97is equal to 98.Dv SIG_HOLD , 99.Fa sig 100is added to the signal 101mask of the calling process and 102.Fa sig 's 103disposition remains unchanged. 104If 105.Fn sigset 106is used, and 107.Fa disp 108is not equal to 109.Dv SIG_HOLD , 110.Fa sig 111is removed from the signal mask of the calling process. 112.Pp 113The 114.Fn sighold 115function adds 116.Fa sig 117to the signal mask of the calling process. 118.Pp 119The 120.Fn sigrelse 121function removes 122.Fa sig 123from the signal mask of the calling process. 124.Pp 125The 126.Fn sigignore 127function sets the disposition of 128.Fa sig 129to 130.Dv SIG_IGN . 131.Pp 132The 133.Fn xsi_sigpause 134function removes 135.Fa sig 136from the signal mask of the calling process and suspend the calling process 137until a signal is received. 138The 139.Fn xsi_sigpause 140function restores the signal mask of the process to its original state before 141returning. 142.Pp 143The 144.Fn sigpause 145function 146assigns 147.Fa sigmask 148to the set of masked signals 149and then waits for a signal to arrive; 150on return the set of masked signals is restored. 151The 152.Fa sigmask 153argument 154is usually 0 to indicate that no 155signals are to be blocked. 156.Sh RETURN VALUES 157The 158.Fn sigpause 159and 160.Fn xsi_sigpause 161functions 162always terminate by being interrupted, returning -1 with 163.Va errno 164set to 165.Er EINTR . 166.Pp 167Upon successful completion, 168.Fn sigset 169returns 170.Dv SIG_HOLD 171if the signal had been blocked and the signal's previous disposition if 172it had not been blocked. 173Otherwise, 174.Dv SIG_ERR 175is returned and 176.Va errno 177set to indicate the error. 178.Pp 179For all other functions, upon successful completion, 0 is returned. 180Otherwise, -1 is returned and 181.Va errno 182is set to indicate the error: 183.Bl -tag -width Er 184.It Bq Er EINVAL 185The 186.Fa sig 187argument 188is not a valid signal number. 189.It Bq Er EINVAL 190For 191.Fn sigset 192and 193.Fn sigignore 194functions, an attempt was made to catch or ignore 195.Dv SIGKILL 196or 197.Dv SIGSTOP . 198.El 199.Sh SEE ALSO 200.Xr kill 2 , 201.Xr sigaction 2 , 202.Xr sigblock 2 , 203.Xr sigprocmask 2 , 204.Xr sigsuspend 2 , 205.Xr sigvec 2 206.Sh STANDARDS 207The 208.Fn sigpause 209function is implemented for compatibility with historic 210.Bx 4.3 211applications. 212An incompatible interface by the same name, which used a single signal number 213rather than a mask, was present in 214.At V , 215and was copied from there into the 216.Sy X/Open System Interfaces 217.Pq Tn XSI 218option of 219.St -p1003.1-2001 . 220.Fx 221implements it under the name 222.Fn xsi_sigpause . 223The 224.Fn sighold , 225.Fn sigignore , 226.Fn sigrelse 227and 228.Fn sigset 229functions are implemented for compatibility with 230.Sy System V 231and 232.Sy XSI 233interfaces. 234.Sh HISTORY 235The 236.Fn sigpause 237function appeared in 238.Bx 4.2 239and has been deprecated. 240All other functions appeared in 241.Fx 8.1 242and were deprecated before being implemented. 243