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.\" $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 176is returned and 177.Va errno 178set to indicate the error. 179.Pp 180For all other functions, upon successful completion, 0 is returned. 181Otherwise, -1 is returned and 182.Va errno 183is set to indicate the error: 184.Bl -tag -width Er 185.It Bq Er EINVAL 186The 187.Fa sig 188argument 189is not a valid signal number. 190.It Bq Er EINVAL 191For 192.Fn sigset 193and 194.Fn sigignore 195functions, an attempt was made to catch or ignore 196.Dv SIGKILL 197or 198.Dv SIGSTOP . 199.El 200.Sh SEE ALSO 201.Xr kill 2 , 202.Xr sigaction 2 , 203.Xr sigblock 2 , 204.Xr sigprocmask 2 , 205.Xr sigsuspend 2 , 206.Xr sigvec 2 207.Sh STANDARDS 208The 209.Fn sigpause 210function is implemented for compatibility with historic 211.Bx 4.3 212applications. 213An incompatible interface by the same name, which used a single signal number 214rather than a mask, was present in 215.At V , 216and was copied from there into the 217.Sy X/Open System Interfaces 218.Pq Tn XSI 219option of 220.St -p1003.1-2001 . 221.Fx 222implements it under the name 223.Fn xsi_sigpause . 224The 225.Fn sighold , 226.Fn sigignore , 227.Fn sigrelse 228and 229.Fn sigset 230functions are implemented for compatibility with 231.Sy System V 232and 233.Sy XSI 234interfaces. 235.Sh HISTORY 236The 237.Fn sigpause 238function appeared in 239.Bx 4.2 240and has been deprecated. 241All other functions appeared in 242.Fx 8.1 243and were deprecated before being implemented. 244