xref: /freebsd/lib/libc/compat-43/sigpause.2 (revision 63f537551380d2dab29fa402ad1269feae17e594)
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