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.\" 4. 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.\" $FreeBSD$ 30.\" 31.\" Part of the content of the man page was derived from 32.\" The Open Group Base Specifications Issue 7 33.\" IEEE Std 1003.1-2008 34.\" 35.Dd June 2, 1993 36.Dt SIGPAUSE 2 37.Os 38.Sh NAME 39.Nm sighold , 40.Nm sigignore , 41.Nm sigpause , 42.Nm sigrelse , 43.Nm sigset 44.Nd legacy interface for signal management 45.Sh LIBRARY 46.Lb libc 47.Sh SYNOPSIS 48.In signal.h 49.Ft int 50.Fn sighold "int sig" 51.Ft int 52.Fn sigignore "int sig" 53.Ft int 54.Fn xsi_sigpause "int sigmask" 55.Ft int 56.Fn sigrelse "int sig" 57.Ft void (*)(int) 58.Fn sigset "int" "void (*disp)(int)" 59.Ft int 60.Fn sigpause "int sigmask" 61.Sh DESCRIPTION 62.Sy This interface is made obsolete by 63.Xr sigsuspend 2 64.Sy and 65.Xr sigaction 2 66.Pp 67The 68.Fn sigset 69function modifies signal dispositions. 70The 71.Fa sig 72argument specifies the signal, which may be any signal except 73.Dv SIGKILL 74and 75.Dv SIGSTOP . 76The 77.Fa disp 78argument specifies the signal's disposition, 79which may be 80.Dv SIG_DFL , 81.Dv SIG_IGN , 82or the address of a signal handler. 83If 84.Fn sigset 85is used, and 86.Fa disp 87is the address of a signal handler, the 88system adds 89.Fa sig 90to the signal mask of the calling process before executing the signal 91handler; when the signal handler returns, the system restores the 92signal mask of the calling process to its state prior to the delivery 93of the signal. 94In addition, if 95.Fn sigset 96is used, and 97.Fa disp 98is equal to 99.Dv SIG_HOLD , 100.Fa sig 101is added to the signal 102mask of the calling process and 103.Fa sig 's 104disposition remains unchanged. 105If 106.Fn sigset 107is used, and 108.Fa disp 109is not equal to 110.Dv SIG_HOLD , 111.Fa sig 112is removed from the signal mask of the calling process. 113.Pp 114The 115.Fn sighold 116function adds 117.Fa sig 118to the signal mask of the calling process. 119.Pp 120The 121.Fn sigrelse 122function removes 123.Fa sig 124from the signal mask of the calling process. 125.Pp 126The 127.Fn sigignore 128function sets the disposition of 129.Fa sig 130to 131.Dv SIG_IGN . 132.Pp 133The 134.Fn xsi_sigpause 135function removes 136.Fa sig 137from the signal mask of the calling process and suspend the calling process 138until a signal is received. 139The 140.Fn xsi_sigpause 141function restores the signal mask of the process to its original state before 142returning. 143.Pp 144The 145.Fn sigpause 146function 147assigns 148.Fa sigmask 149to the set of masked signals 150and then waits for a signal to arrive; 151on return the set of masked signals is restored. 152The 153.Fa sigmask 154argument 155is usually 0 to indicate that no 156signals are to be blocked. 157.Sh RETURN VALUES 158The 159.Fn sigpause 160and 161.Fn xsi_sigpause 162functions 163always terminate by being interrupted, returning -1 with 164.Va errno 165set to 166.Er EINTR . 167.Pp 168Upon successful completion, 169.Fn sigset 170returns 171.Dv SIG_HOLD 172if the signal had been blocked and the signal's previous disposition if 173it had not been blocked. 174Otherwise, 175.Dv SIG_ERR is 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