名 前
pthread_kill − ス レ ッ ド に シ グ ナ ル を 送 信 す る
書 式
#include <signal.h>
int pthread_kill(pthread_t thread, int sig);
−pthread を 付 け て コ ン パ イ ル と リ ン ク を 行 う 。
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
pthread_kill():
_POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500
説 明
pthread_kill() 関 数 は 、 呼 び 出 し た ス レ ッ ド と 同 じ プ ロ セ ス の ス レ ッ ド thread に シ グ ナ ル sig を 送 信 す る 。 シ グ ナ ル は 非 同 期 に thread へ 直 接 送 ら れ る 。
sig が 0 の 場 合 、 シ グ ナ ル は 送 信 さ れ な い が 、 エ ラ ー チ ェ ッ ク だ け は 実 行 さ れ る 。
返 り 値
成 功 す る と 、 pthread_kill() は 0 を 返 す 。 エ ラ ー の 場 合 、 エ ラ ー 番 号 を 返 し 、 シ グ ナ ル の 送 信 は 行 わ な い 。
エ ラ ー
EINVAL 無 効 な シ グ ナ ル が 指 定 さ れ た 。 |
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )
pthread_kill() 関 数 は ス レ ッ ド セ ー フ で あ る 。
準 拠
POSIX.1−2008.
注 意
シ グ ナ ル の 配 送 は プ ロ セ ス 全 体 で 行 わ れ る 。 シ グ ナ ル ハ ン ド ラ ー が 設 定 さ れ て い る 場 合 、 そ の ハ ン ド ラ ー が ス レ ッ ド thread で 起 動 さ れ る が 、 シ グ ナ ル の 配 送 が "stop", "continue", "terminate" の い ず れ か の 場 合 、 シ グ ナ ル に 対 す る ア ク シ ョ ン は プ ロ セ ス 全 体 に 影 響 が あ る 。
POSIX.1−2008 で は 、 ス レ ッ ド が 終 了 し た 後 に そ の ス レ ッ ド ID が 使 用 さ れ た こ と を 検 出 し た 場 合 に 、 pthread_kill() は エ ラ ー ESRCH を 返 す こ と を 推 奨 さ れ て い る 。 glibc の 実 装 で は 、 無 効 な ス レ ッ ド ID を 検 出 で き る 場 合 に は こ の エ ラ ー を 返 す 。 し か し 、 POSIX で は 、 終 了 し た ス レ ッ ド ID を 使 お う と し た 場 合 の 動 作 は 不 定 で あ り 、 pthread_kill() で 無 効 な ス レ ッ ド ID を 使 お う と し た 場 合 に は 、 例 え ば 、 セ グ メ ン テ ー シ ョ ン フ ォ ー ル ト に な る 可 能 性 も あ る 点 に 注 意 す る こ と 。
関 連 項 目
kill(2), sigaction(2), sigpending(2), pthread_self(3), pthread_sigmask(3), raise(3), pthreads(7), signal(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。