Man page - sigset(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

SIGSET

名 前
書 式
説 明
返 り 値
エ ラ ー
属 性
準 拠
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

sigset, sighold, sigrelse, sigignore - System V 版 シ グ ナ ル API

書 式

#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t sigset(int sig , sighandler_t disp );

int sighold(int sig );

int sigrelse(int sig );

int sigignore(int sig );

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

sigset (), sighold (), sigrelse (), sigignore ():

_XOPEN_SOURCE >= 500

説 明

こ れ ら の 関 数 は 、 昔 な が ら の System V 版 シ グ ナ ル API を 使 用 し て い る プ ロ グ ラ ム に 対 し て 互 換 性 の あ る イ ン タ ー フ ェ ー ス を glibc で 提 供 す る も の で あ る 。 こ の API は 過 去 の も の で あ り 、 新 し い ア プ リ ケ ー シ ョ ン で は POSIX シ グ ナ ル API ( sigaction (2), sigprocmask (2) な ど ) を 使 用 す べ き で あ る 。

関 数 sigset () は シ グ ナ ル sig の シ グ ナ ル ハ ン ド ラ ー の 動 作 を 変 更 す る 。 disp 引 数 に は 、 シ グ ナ ル ハ ン ド ラ ー 関 数 の ア ド レ ス か 、 以 下 の 定 数 の い ず れ か 一 つ を 指 定 で き る 。
SIG_DFL

sig の 動 作 を デ フ ォ ル ト に リ セ ッ ト す る 。

SIG_IGN

sig を 無 視 す る 。

SIG_HOLD

そ の プ ロ セ ス の シ グ ナ ル マ ス ク に sig を 追 加 す る が 、 sig の 動 作 は 変 更 し な い 。

disp に シ グ ナ ル ハ ン ド ラ ー の ア ド レ ス が 指 定 さ れ た 場 合 、 シ グ ナ ル ハ ン ド ラ ー の 実 行 中 は 、 そ の プ ロ セ ス の シ グ ナ ル マ ス ク に sig が 追 加 さ れ る 。

disp SIG_HOLD 以 外 の 値 が 指 定 さ れ た 場 合 、 そ の プ ロ セ ス の シ グ ナ ル マ ス ク か ら sig が 削 除 さ れ る 。

シ グ ナ ル SIGKILL SIGSTOP に 対 す る 動 作 は 変 更 で き な い 。

関 数 sighold () は 、 呼 び 出 し 元 プ ロ セ ス の シ グ ナ ル マ ス ク に sig を 追 加 す る 。

関 数 sigrelse () は 、 呼 び 出 し 元 プ ロ セ ス の シ グ ナ ル マ ス ク か ら sig を 削 除 す る 。

関 数 sigignore () は 、 sig の 動 作 を SIG_IGN に 設 定 す る 。

返 り 値

sigset () は 成 功 す る と 、 呼 び 出 し 前 に sig が ブ ロ ッ ク さ れ て い た 場 合 に は SIG_HOLD を 返 し 、 ブ ロ ッ ク さ れ て い な か っ た 場 合 に は 変 更 前 の そ の シ グ ナ ル の 動 作 を 返 す 。 エ ラ ー の 場 合 、 sigset () は -1 を 返 し 、 errno に エ ラ ー を 示 す 値 を セ ッ ト す る 。 但 し 、 以 下 の 「 バ グ 」 の 節 も 参 照 の こ と 。

関 数 sighold (), sigrelse (), sigignore () は 成 功 す る と 0 を 返 す 。 エ ラ ー の 場 合 、 -1 を 返 し 、 errno に エ ラ ー を 示 す 値 を セ ッ ト す る 。

エ ラ ー

sigset () に 関 し て は 、 sigaction (2) と sigprocmask (2) の 「 エ ラ ー 」 の 節 を 参 照 。

sighold () と sigrelse () に 関 し て は 、 sigprocmask (2) の 「 エ ラ ー 」 の 節 を 参 照 。

sigignore () に 関 し て は 、 sigaction (2) の 「 エ ラ ー 」 の 節 を 参 照 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-19434-1.png

準 拠

SVr4, POSIX.1-2001, POSIX.1-2008. こ れ ら の 関 数 は 廃 止 予 定 で あ る 。 新 し い プ ロ グ ラ ム で は 使 用 し な い こ と 。 POSIX.1-2008 は 、 sighold (), sigignore (), sigpause (3), sigrelse (), sigset () を 廃 止 予 定 と し て い る 。 代 わ り に 、 sigaction (2), sigprocmask (2), pthread_sigmask (3), sigsuspend (2) の 使 用 が 推 奨 さ れ て い る 。

注 意

こ れ ら の 関 数 は glibc 2.1 で 登 場 し た 。

sighandler_t 型 は GNU に よ る 拡 張 で あ り 、 こ の man page で sigset () の プ ロ ト タ イ プ を よ り 読 み や す く す る た め に 使 わ れ て い る だ け で あ る 。

関 数 sigset () は 信 頼 性 の あ る シ グ ナ ル 処 理 機 構 を 提 供 す る ( sa_mask を 0 で sigaction (2) を 呼 び 出 し た と き と 同 様 )。

System V で は 、 関 数 signal () が 提 供 す る 処 理 機 構 は 信 頼 性 の な い も の で あ る ( sa_mask SA_RESETHAND | SA_NODEFER と し て sigaction (2) を 呼 び 出 し た と き と 同 様 )。 BSD で は 、 signal () は 信 頼 性 の あ る 処 理 機 構 を 提 供 す る 。 POSIX.1-2001 で は 、 signal () の こ の 点 は 規 定 し な い ま ま と な っ て い る 。 さ ら な る 詳 細 に つ い て は signal (2) を 参 照 。

BSD と System V の ど ち ら の シ ス テ ム で も シ グ ナ ル を 待 つ た め に 、 sigpause (3) と い う 名 前 の 関 数 が 提 供 さ れ て い る が 、 こ の 関 数 の 引 数 は 両 方 の シ ス テ ム で 異 な る 。 詳 細 は sigpause (3) を 参 照 。

バ グ

2.2 よ り 前 の バ ー ジ ョ ン の glibc で は 、 disp SIG_HOLD 以 外 の 値 が 指 定 さ れ た 場 合 、 sig の ブ ロ ッ ク 解 除 を 行 っ て い な か っ た 。

2.3.5 以 前 の 全 て の バ ー ジ ョ ン の glibc で は 、 sigset () が 変 更 前 の シ グ ナ ル の 動 作 を 正 し く 返 さ な い 場 合 が 2つ あ る 。 一 つ め は 、 disp SIG_HOLD が 指 定 さ れ る と 、 成 功 し た 場 合 sigset () は 常 に SIG_HOLD を 返 す こ と で あ る 。 正 し く は 、 (シ グ ナ ル が ブ ロ ッ ク さ れ て い な か っ た 場 合 に は ) 変 更 前 の シ グ ナ ル の 動 作 を 返 す べ き で あ る (シ グ ナ ル が ブ ロ ッ ク さ れ て い た 場 合 に は 、 SIG_HOLD が 返 さ れ る )。 も う 一 つ は 、 シ グ ナ ル が 現 在 ブ ロ ッ ク さ れ て い る 場 合 に は 、 成 功 し た 場 合 の sigset () の 返 り 値 は SIG_HOLD に な る べ き で あ る が 、 実 際 に は 変 更 前 の シ グ ナ ル の 動 作 が 返 さ れ る こ と で あ る 。 こ れ ら の 問 題 は glibc 2.5 以 降 で 修 正 さ れ て い る 。

関 連 項 目

kill (2), pause (2), sigaction (2), signal (2), sigprocmask (2), raise (3), sigpause (3), sigvec (3), signal (7)

こ の 文 書 に つ い て

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