名 前
sysv_signal − System V 方 式 の シ グ ナ ル 処 理
書 式
#define
_GNU_SOURCE /* feature_test_macros(7) 参 照
*/
#include <signal.h>
typedef void (*sighandler_t)(int);
sighandler_t sysv_signal(int signum, sighandler_t handler);
説 明
sysv_signal() 関 数 は signal(2) と 同 じ 引 き 数 を と り 、 同 じ 処 理 を 実 行 す る 。 し か し な が ら 、 sysv_signal() は System V の 信 頼 性 に 欠 け る シ グ ナ ル 処 理 方 式 を 提 供 し て い る 。 信 頼 性 に 欠 け る シ グ ナ ル 処 理 方 式 は 以 下 の 特 徴 を 持 つ 。 a) ハ ン ド ラ ー が 起 動 さ れ る と 、 シ グ ナ ル の 処 理 方 法 (disposition) が デ フ ォ ル ト に リ セ ッ ト さ れ る 、 b) シ グ ナ ル ハ ン ド ラ ー の 実 行 中 は 、 そ れ 以 降 に 発 生 し た 同 じ シ グ ナ ル の 配 送 が ブ ロ ッ ク さ れ な い 、 c) ハ ン ド ラ ー が 停 止 中 の (blocking し て い る ) シ ス テ ム コ ー ル を 中 断 し た 場 合 、 自 動 的 に 再 開 さ れ な い シ ス テ ム コ ー ル が あ る 。
返 り 値
sysv_signal() 関 数 は シ グ ナ ル ハ ン ド ラ ー の 直 前 の 値 を 返 す 。 エ ラ ー の 場 合 、 SIG_ERR を 返 す 。
エ ラ ー
signal(2) と 同 じ 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )
sysv_signal() 関 数 は ス レ ッ ド セ ー フ で あ る 。
準 拠
こ の 関 数 は 非 標 準 で あ る 。
注 意
sysv_signal() の 使 用 は 避 け る べ き で あ る 。 代 わ り に sigaction(2) を 使 う こ と 。 以 前 の Linux シ ス テ ム で は 、 sysv_signal() と signal(2) は 等 価 で あ っ た 。 し か し 、 新 し め の シ ス テ ム で は 、 signal(2) は 信 頼 性 の あ る シ グ ナ ル 処 理 方 式 を 提 供 し て い る 。 詳 細 は signal(2) を 参 照 。
sighandler_t を 使 っ て い る の は GNU に よ る 拡 張 で あ る 。 こ の 型 は 機 能 検 査 マ ク ロ _GNU_SOURCE を 定 義 し た 場 合 に の み 定 義 さ れ る 。
関 連 項 目
sigaction(2), signal(2), bsd_signal(3), signal(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。