Annotation of src/lib/libc/compat-43/sigsetmask.3, Revision 1.19
1.8 perry 1: .\" Copyright (c) 1983, 1991, 1993
2: .\" The Regents of the University of California. All rights reserved.
1.1 cgd 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.
1.18 agc 12: .\" 3. Neither the name of the University nor the names of its contributors
1.1 cgd 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: .\"
1.8 perry 28: .\" from: @(#)sigsetmask.2 8.1 (Berkeley) 6/2/93
1.19 ! wiz 29: .\" $NetBSD: sigsetmask.3,v 1.18 2003/08/07 16:42:40 agc Exp $
1.1 cgd 30: .\"
1.15 wiz 31: .Dd August 10, 2002
1.4 cgd 32: .Dt SIGSETMASK 3
1.11 garbled 33: .Os
1.1 cgd 34: .Sh NAME
35: .Nm sigsetmask
36: .Nd set current signal mask
1.9 perry 37: .Sh LIBRARY
38: .Lb libc
1.1 cgd 39: .Sh SYNOPSIS
1.17 wiz 40: .In signal.h
1.1 cgd 41: .Ft int
42: .Fn sigsetmask "int mask"
43: .Fn sigmask signum
44: .Sh DESCRIPTION
45: .Bf -symbolic
1.7 mikel 46: This interface is made obsolete by:
1.1 cgd 47: .Ef
48: .Xr sigprocmask 2 .
49: .Pp
1.10 lukem 50: .Fn sigsetmask
1.19 ! wiz 51: sets the current signal mask.
1.1 cgd 52: Signals are blocked from delivery if the
1.12 wiz 53: corresponding bit in
1.1 cgd 54: .Fa mask
55: is a 1; the macro
56: .Fn sigmask
57: is provided to construct the mask for a given
58: .Fa signum .
59: .Pp
60: The system
61: quietly disallows
62: .Dv SIGKILL
63: or
64: .Dv SIGSTOP
65: to be blocked.
1.15 wiz 66: .Sh RETURN VALUES
67: The previous set of masked signals is returned.
1.14 yamt 68: .Sh EXAMPLES
1.16 perry 69: The following example using
1.14 yamt 70: .Fn sigsetmask :
71: .Bd -literal -offset indent
72: int omask;
73:
74: omask = sigblock(sigmask(SIGINT) | sigmask(SIGHUP));
75:
76: \&...
77:
78: sigsetmask(omask & ~(sigmask(SIGINT) | sigmask(SIGHUP)));
79: .Ed
80: .Pp
81: Could be converted literally to:
82: .Bd -literal -offset indent
83: sigset_t set, oset;
84:
85: sigemptyset(&set);
86: sigaddset(&set, SIGINT);
87: sigaddset(&set, SIGHUP);
88: sigprocmask(SIG_BLOCK, &set, &oset);
89:
90: \&...
91:
92: sigdelset(&oset, SIGINT);
93: sigdelset(&oset, SIGHUP);
94: sigprocmask(SIG_SETMASK, &oset, NULL);
95: .Ed
96: .Pp
97: Another, clearer, alternative is:
98: .Bd -literal -offset indent
99: sigset_t set;
100:
101: sigemptyset(&set);
102: sigaddset(&set, SIGINT);
103: sigaddset(&set, SIGHUP);
104: sigprocmask(SIG_BLOCK, &set, NULL);
105:
106: \&...
107:
108: sigprocmask(SIG_UNBLOCK, &set, NULL);
109: .Ed
110: .Pp
111: To completely clear the signal mask using
112: .Fn sigsetmask
113: one can do:
114: .Bd -literal -offset indent
115: (void) sigsetmask(0);
116: .Ed
117: .Pp
118: Which can be expressed via
119: .Xr sigprocmask 2
120: as:
121: .Bd -literal -offset indent
122: sigset_t eset;
123:
124: sigemptyset(&eset);
125: (void) sigprocmask(SIG_SETMASK, &eset, NULL);
126: .Ed
1.1 cgd 127: .Sh SEE ALSO
128: .Xr kill 2 ,
129: .Xr sigaction 2 ,
1.7 mikel 130: .Xr sigprocmask 2 ,
1.1 cgd 131: .Xr sigsuspend 2 ,
1.7 mikel 132: .Xr sigblock 3 ,
133: .Xr sigsetops 3 ,
134: .Xr sigvec 3
1.1 cgd 135: .Sh HISTORY
136: The
1.3 jtc 137: .Fn sigsetmask
1.1 cgd 138: function call appeared in
139: .Bx 4.2
140: and has been deprecated.
CVSweb <webmaster@jp.NetBSD.org>