Manpages

名 前

bsd_signal − BSD 方 式 の シ グ ナ ル 処 理

書 式

#define _XOPEN_SOURCE /* feature_test_macros(7) 参 照 */
#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t bsd_signal(int signum, sighandler_t handler);

説 明

bsd_signal() 関 数 は signal(2) と 同 じ 引 き 数 を と り 、 同 じ 処 理 を 実 行 す る 。 両 者 の 違 い は 、 bsd_signal() で は 信 頼 性 の あ る シ グ ナ ル 処 理 方 式 の 提 供 が 保 証 さ れ て い る こ と で あ る 。 信 頼 性 の あ る シ グ ナ ル 処 理 方 式 は 以 下 の 特 徴 を 持 つ 。 a) ハ ン ド ラ ー が 起 動 さ れ た 場 合 に 、 シ グ ナ ル の 処 理 方 法 (disposition) が デ フ ォ ル ト に リ セ ッ ト さ れ な い 、 b) シ グ ナ ル ハ ン ド ラ ー の 実 行 中 は 、 そ れ 以 降 に 発 生 し た 同 じ シ グ ナ ル の 配 送 が ブ ロ ッ ク さ れ な い 、 c) ハ ン ド ラ ー が 停 止 中 の (blocking し て い る ) シ ス テ ム コ ー ル を 中 断 し た 場 合 、 そ の シ ス テ ム コ ー ル が 自 動 的 に 再 開 さ れ る 。 移 植 性 が 必 要 な ア プ リ ケ ー シ ョ ン で は 、 signal(2) で こ れ ら が 保 証 さ れ る こ と を 前 提 に す べ き で は な い 。

返 り 値

bsd_signal() 関 数 は シ グ ナ ル ハ ン ド ラ ー の 直 前 の 値 を 返 す 。 エ ラ ー の 場 合 、 SIG_ERR を 返 す 。

エ ラ ー

signal(2) と 同 じ 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )

bsd_signal() 関 数 は ス レ ッ ド セ ー フ で あ る 。

準 拠

4.2BSD, POSIX.1−2001. POSIX.1−2008 で は bsd_signal() の 仕 様 が 削 除 さ れ て い る 。 代 わ り に 、 sigaction(2) の 使 用 が 推 奨 さ れ て い る 。

注 意

bsd_signal() の 使 用 は 避 け る べ き で あ る 。 代 わ り に sigaction(2) を 使 う こ と 。 最 近 の Linux シ ス テ ム で は 、 bsd_signal() と signal(2) は 等 価 で あ る 。 し か し 、 以 前 の シ ス テ ム で は 、 signal(2) は 信 頼 性 に 欠 け る シ グ ナ ル 処 理 方 式 を 提 供 し て い た 。 詳 細 は signal(2) を 参 照 。

sighandler_t を 使 っ て い る の は GNU に よ る 拡 張 で あ る 。 こ の 型 は 機 能 検 査 マ ク ロ _GNU_SOURCE を 定 義 し た 場 合 に の み 定 義 さ れ る 。

関 連 項 目

sigaction(2), signal(2), sysv_signal(3), signal(7)

こ の 文 書 に つ い て

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