Manpages

名 前

sigprocmask − 禁 止 す る シ グ ナ ル の 確 認 と 変 更

書 式

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

sigprocmask(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

説 明

sigprocmask() を 使 う と 、 呼 び 出 し た ス レ ッ ド の シ グ ナ ル マ ス ク の 取 得 /変 更 が で き る 。 シ グ ナ ル マ ス ク は 、 呼 び 出 し 元 に 対 し て 現 在 配 送 が 禁 止 さ れ て い る シ グ ナ ル の 集 合 の こ と で あ る (詳 細 に つ い て は signal(7) も 参 照 の こ と )。 こ の コ ー ル の 動 作 は how の 値 に よ っ て 決 ま る :
SIG_BLOCK
禁 止 さ れ た シ グ ナ ル の 集 合 は 現 在 の 値 と set 引 き 数 を 結 合 し た も の と な る 。
SIG_UNBLOCK
現 在 禁 止 さ れ て い る シ グ ナ ル の 集 合 か ら set に あ る シ グ ナ ル を 取 り 除 く 。 禁 止 さ れ て い な い シ グ ナ ル を 取 り 除 こ う と す る こ と も 認 め ら れ て い る 。
SIG_SETMASK
禁 止 さ れ て い る シ グ ナ ル の 集 合 に set 引 き 数 を 設 定 す る 。

oldset が NULL で な け れ ば 、 シ グ ナ ル マ ス ク の 今 ま で の 値 を oldset に 格 納 す る 。

set が NULL で あ れ ば 、 シ グ ナ ル マ ス ク は 変 更 さ れ な い (す な わ ち 、 how は 無 視 さ れ る )。 set の 値 に か か わ ら ず 、 現 在 の シ グ ナ ル マ ス ク の 値 は oldset に 入 れ て 返 さ れ る (但 し 、 oldset が NULL で な い 場 合 )。 マ ル チ ス レ ッ ド の プ ロ セ ス で sigprocmask() を 使 用 し た 場 合 の 動 作 は 規 定 さ れ て い な い 。 pthread_sigmask(3) を 参 照 の こ と 。

返 り 値

sigprocmask() は 成 功 し た 場 合 0 を 返 す 。 エ ラ ー の 場 合 、 −1 を 返 し 、 errno に エ ラ ー の 原 因 を 示 す 値 を 設 定 す る 。

エ ラ ー

EFAULT 引 き 数

setoldset が プ ロ セ ス に 割 り 当 て ら れ た ア ド レ ス 空 間 の 外

を 指 し て い る 。

EINVAL

how に 指 定 さ れ た 値 が 有 効 で は な い 。

準 拠

POSIX.1−2001.

注 意

SIGKILLSIGSTOP を 禁 止 す る こ と は で き な い 。 禁 止 し よ う と し て も 黙 っ て 無 視 さ れ る 。 プ ロ セ ス 内 の 各 ス レ ッ ド は そ れ ぞ れ 専 用 の シ グ ナ ル マ ス ク を 持 つ 。

fork(2) 経 由 で 作 成 さ れ た 子 プ ロ セ ス は 親 プ ロ セ ス の シ グ ナ ル マ ス ク の コ ピ ー を 継 承 す る 。 execve(2) の 前 後 で シ グ ナ ル マ ス ク は 保 持 さ れ る 。 シ グ ナ ル SIGBUS, SIGFPE, SIGILL, SIGSEGV が 禁 止 さ れ て い る 間 に 生 成 さ れ た 場 合 で 、 そ の シ グ ナ ル が kill(2), sigqueue(3), raise(3) に よ っ て 生 成 さ れ た も の で な い と き に は 、 そ の 後 の 動 作 は 未 定 義 で あ る 。 シ グ ナ ル 集 合 の 操 作 に 関 す る 詳 細 は sigsetops(3) を 参 照 の こ と 。

関 連 項 目

kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigsuspend(2), pthread_sigmask(3), sigqueue(3), sigsetops(3), signal(7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。