[BACK]Return to sigsetmask.3 CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / compat-43

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>