Manpages

名 前

gsignal, ssignal − ソ フ ト ウ ェ ア シ グ ナ ル 機 能

書 式

#include <signal.h>

typedef void (*sighandler_t)(int);

int gsignal(int signum);

sighandler_t ssignal(int signum, sighandler_t action);

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

gsignal(), ssignal(): _SVID_SOURCE

説 明

Linux で は こ れ ら の 関 数 を 使 用 し な い こ と 。 過 去 に 間 違 い が あ り 、 Linux で は gsignal() と ssignal() は そ れ ぞ れ raise(3)signal(2) の 別 名 に な っ て い る 。 一 方 、 System V 風 の シ ス テ ム で は 、 こ れ ら の 関 数 で 、 従 来 の signal(2)kill(2) の 関 数 群 と は 完 全 に 独 立 な 、 ソ フ ト ウ ェ ア シ グ ナ リ ン グ を 実 現 し て い る 。 ssignal() 関 数 は 、 番 号 signum の ソ フ ト ウ ェ ア シ グ ナ ル が gsignal() 関 数 を 使 っ て 発 生 さ れ た 時 に と る べ き ア ク シ ョ ン を 定 義 す る 。 gsignal() の 返 り 値 は 、 一 つ 前 に 指 定 さ れ て い た ア ク シ ョ ン 、 も し く は SIG_DFL で あ る 。 gsignal() は 以 下 の よ う な 動 作 を 行 う : signum に 対 し て ア ク シ ョ ン が 指 定 さ れ て い な い か 、 ア ク シ ョ ン SIG_DFL が 指 定 さ れ て い た 場 合 、 何 も せ ず に 0 を 返 す 。 signum に 対 し て ア ク シ ョ ン SIG_IGN が 指 定 さ れ て い た 場 合 、 何 も せ ず に 1 を 返 す 。 そ れ 以 外 の 場 合 、 ア ク シ ョ ン を SIG_DFL に リ セ ッ ト し 、 引 き 数 に signum を 指 定 し て ア ク シ ョ ン 関 数 を 呼 び 出 し て 、 ア ク シ ョ ン 関 数 の 返 り 値 を 返 す 。 signum が と り 得 る 値 の 範 囲 は 実 装 に よ り 異 な る (多 く の 場 合 1〜 15 か 1〜 17 で あ る )。

準 拠

こ れ ら の 関 数 は 、 AIX, DG/UX, HP−UX, SCO, Solaris, Tru64 で 使 用 可 能 で あ る 。 こ れ ら の シ ス テ ム の ほ と ん ど で 廃 止 さ れ た こ と に な っ て お り 、 Linux の libc お よ び glibc で は 正 し く 実 装 さ れ て い な い 。 gsignal_r() と ssignal_r() が 実 装 さ れ て い る シ ス テ ム も あ る 。

関 連 項 目

kill(2), signal(2), raise(3)

こ の 文 書 に つ い て

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