Commit | Line | Data |
---|---|---|
bb5fd2c3 KM |
1 | .\" Copyright (c) 1980 Regents of the University of California. |
2 | .\" All rights reserved. The Berkeley software License Agreement | |
3 | .\" specifies the terms and conditions for redistribution. | |
4 | .\" | |
5 | .\" @(#)sigset.3 4.1 (Berkeley) %G% | |
6 | .\" | |
7 | .TH SIGSET 3 | |
8 | .UC 4 | |
9 | .SH NAME | |
10 | sigset, signal, sighold, sigignore, sigrelse, sigpause \- manage signals | |
11 | .SH SYNOPSIS | |
12 | .nf | |
13 | .B #include <signal.h> | |
14 | .B void action(); | |
15 | .B int sig; | |
16 | .PP | |
17 | .B sigset(sig, action) | |
18 | .B signal(sig, action) | |
19 | .PP | |
20 | .B sighold(sig) | |
21 | .B sigignore(sig) | |
22 | .B sigrelse(sig) | |
23 | .PP | |
24 | .B sigpause(sig) | |
25 | .PP | |
26 | .fi | |
27 | .B cc ... \-ljobs | |
28 | .nf | |
29 | .SH DESCRIPTION | |
30 | This is a package of signal management functions to manage the signals | |
31 | as described in | |
32 | .IR sigsys (2). | |
33 | These functions are available only in this version of UNIX, and should | |
34 | not be used when the mechanisms of | |
35 | .IR signal (2) | |
36 | would suffice, as they would then impair portability. | |
37 | These functions are contained in the \fIjobs\fR library, obtained by | |
38 | specifying the loader option \fB\-ljobs\fR. | |
39 | .PP | |
40 | .I Sigset | |
41 | is used to provide a default signal handler for signal | |
42 | .I sig. | |
43 | This function is remembered across subsequent calls to the other | |
44 | functions, and need not be specified again. | |
45 | After | |
46 | .I sigset | |
47 | instances of | |
48 | .I sig | |
49 | will cause an interrupt to be taken at | |
50 | .I func, | |
51 | with the signal then held so that recursive trapping due to | |
52 | the signal will not occur. During normal return from | |
53 | .I func, | |
54 | the routines arrange for the signal action to be restored so that | |
55 | subsequent signals will also trap to | |
56 | .I func. | |
57 | If a non-local exit is to be taken, then | |
58 | .I sigrelse | |
59 | must be called to un-hold the signal action, restoring the | |
60 | original catch. | |
61 | .I Func | |
62 | may also be specified as | |
63 | SIG_DFL, SIG_IGN or SIG_HOLD, as described in | |
64 | .IR sigsys (2). | |
65 | The value specified on the previous call to | |
66 | .I sigset | |
67 | is returned; if | |
68 | .I sigset | |
69 | has never been called, then the default action inherited from the | |
70 | system is returned. | |
71 | .PP | |
72 | .I Signal | |
73 | is like | |
74 | .I sigset, | |
75 | but the signal will not be held when the action routine is called; | |
76 | rather it will have reverted to SIG_DFL. | |
77 | This is generally unsafe, but is included for backwards compatibility | |
78 | to the old signal mechanism. | |
79 | It should not be used. | |
80 | .PP | |
81 | .I Sighold | |
82 | and | |
83 | .I sigrelse | |
84 | may be used to block off | |
85 | .I sig | |
86 | in a piece of code where it cannot be tolerated. | |
87 | After | |
88 | .I sigrelse | |
89 | the catch initially set with | |
90 | .I sigset | |
91 | will be restored. | |
92 | .PP | |
93 | .I Sigignore | |
94 | can be used to temporarily set the action for | |
95 | .I sig | |
96 | to ignore the signal. If the signal had been held before | |
97 | the call to | |
98 | .I sigignore, | |
99 | any pending instance of the signal will be discarded. | |
100 | .PP | |
101 | .I Sigpause | |
102 | may be used by a routine which wishes to check for some condition | |
103 | produced at interrupt level by the | |
104 | .I sig | |
105 | signal, and then to pause waiting for the condition to arise with | |
106 | the catch of the signal enabled. | |
107 | In correct usage it must be preceded by an instance of | |
108 | .I sighold | |
109 | to block the signal. | |
110 | .I Sigpause | |
111 | is like | |
112 | .I pause | |
113 | in that it will return after | |
114 | .I any | |
115 | signal is processed. | |
116 | The usual thing to do then is to reenable the hold with | |
117 | .I sighold, | |
118 | check the condition | |
119 | again, and | |
120 | .I sigpause | |
121 | again if the condition has not arisen. | |
122 | .SH "SEE ALSO" | |
123 | sigsys(2), signal(2), jobs(3), tty(4) | |
124 | .SH BUGS | |
125 | .I Sighold | |
126 | and | |
127 | .I sigrelse | |
128 | do not nest; the first | |
129 | .I sigrelse | |
130 | restores the default catch. | |
131 | .PP | |
132 | These functions store information in data space. You thus | |
133 | .B must | |
134 | call | |
135 | .IR sigsys (2) | |
136 | rather than any of | |
137 | .I sigset | |
138 | or | |
139 | .I signal | |
140 | after a | |
141 | .IR vfork (2) | |
142 | in the child which is to then | |
143 | .IR exec (2). |