.\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sigprocmask.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/sigprocmask.2,v 1.21 2003/09/08 19:57:16 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt SIGPROCMASK 2 .Os .Sh 名称 .Nm sigprocmask .Nd 現在のシグナルマスクを操作する .Sh ライブラリ .Lb libc .Sh 書式 .In signal.h .Ft int .Fo sigprocmask .Fa "int how" .Fa "const sigset_t * restrict set" .Fa "sigset_t * restrict oset" .Fc .Sh 解説 .Fn sigprocmask システムコールは、現在のシグナルマスク (配信がブロックされているシグナル) の 調査や変更を行います。 シグナルは、現在のシグナルマスクセットに含まれる場合にブロックされます。 .Pp .Fa set が NULL ではない場合、 .Fn sigprocmask の操作は、 .Fa how 引数の値によって決まります。 シグナルマスクは、指定した .Fa set と現在のマスクによって変更されます。 関数は、 .In signal.h で定義される以下の値を使用して .Fa how で指定します。 .Bl -tag -width SIG_UNBLOCK .It Dv SIG_BLOCK 新しいマスクは、現在のマスクと指定した .Fa set の和集合になります。 .It Dv SIG_UNBLOCK 新しいマスクは、現在のマスクと指定した .Fa set の補集合の交わりになります。 .It Dv SIG_SETMASK 現在のマスクは、指定した .Fa set に置き換えられます。 .El .Pp .Fa oset が NULL でない場合、前のシグナルマスクの値に設定されます。 .Fa set が NULL である場合、 .Fa how の値が無効になり、マスクは未設定のまま残るので、 シグナルマスクを修正せずに検査できるようになります。 .Pp システムでは、 .Dv SIGKILL や .Dv SIGSTOP のブロックが許可されていません。 .Sh 戻り値 .Rv -std sigprocmask .Sh エラー 以下が発生すると、 .Fn sigprocmask システムコールはエラーになり、シグナルマスクは変更されません。 .Bl -tag -width Er .It Bq Er EINVAL .Fa how 引数が、ここでリストに挙げた以外の値になっています。 .El .Sh 関連項目 .Xr kill 2 , .Xr sigaction 2 , .Xr sigpending 2 , .Xr sigsuspend 2 , .Xr fpsetmask 3 , .Xr sigsetops 3 .Sh 規格 .Fn sigprocmask システムコールは、 .St -p1003.1-90 に適合しています。