名 前
tkill, tgkill − ス レ ッ ド に シ グ ナ ル を 送 る
書 式
int tkill(int tid, int sig);
int tgkill(int tgid, int tid, int sig); 注 : こ れ ら の シ ス テ ム コ ー ル に は 、 glibc の ラ ッ パ ー 関 数 は な い 。 「 注 意 」 の 節 を 参 照 。
説 明
tgkill() は ス レ ッ ド グ ル ー プ tgid に 属 す る ス レ ッ ド ID が tid の ス レ ッ ド に シ グ ナ ル sig を 送 る 。 (こ れ に 対 し 、 kill(2) は 一 つ の プ ロ セ ス (す な わ ち 、 ス レ ッ ド グ ル ー プ ) に ま と め て シ グ ナ ル を 送 る の に だ け 利 用 で き る 。 kill(2) で 送 信 さ れ た シ グ ナ ル は プ ロ セ ス 内 の 任 意 の ス レ ッ ド に 配 送 さ れ る 。 )
tkill() は も う 使 わ れ な く な っ た tgkill() の 先 祖 で あ る 。 tkill() で は シ グ ナ ル の 送 り 先 の ス レ ッ ド ID し か 指 定 で き な い 。 そ の た め 、 ス レ ッ ド が 終 了 し て 、 そ の ス レ ッ ド ID が 再 利 用 さ れ る 場 合 に 、 意 図 し な い ス レ ッ ド に シ グ ナ ル が 送 ら れ る 可 能 性 が あ る 。 こ の シ ス テ ム コ ー ル の 使 用 は 避 け る こ と 。 こ れ ら は シ ス テ ム コ ー ル へ の 直 接 の イ ン タ ー フ ェ ー ス で あ り 、 ス レ ッ ド ラ イ ブ ラ リ 内 部 で の 使 用 を 意 図 し た も の で あ る 。
返 り 値
成 功 し た 場 合 、 0 が 返 さ れ る 。 エ ラ ー が 発 生 し た 場 合 、 −1 が 返 さ れ 、 errno が 適 切 に 設 定 さ れ る 。
エ ラ ー
EINVAL 指 定 さ れ た ス レ ッ ド |
ID、 ス レ ッ ド グ ル ー プ ID、 シ グ ナ ル が 不 正 で あ っ |
た 。
EPERM 許 可 が な か っ た 。 ど の よ う な 許 可 が 必 要 か に つ い て は 、 |
照 の こ と 。
ESRCH 指 定 さ れ た ス レ ッ ド |
ID (と ス レ ッ ド グ ル ー プ ID) を 持 つ プ ロ セ ス が 存 在 |
し な い 。
バ ー ジ ョ ン
tkill() は Linux 2.4.19 / 2.5.4 以 降 で サ ポ ー ト さ れ 、 tgkill() は Linux 2.5.75 で 追 加 さ れ た 。
準 拠
tkill() と tgkill() は Linux 固 有 で あ り 、 移 植 を 想 定 し た プ ロ グ ラ ム で は 使 用 す べ き で は な い 。
注 意
ス レ ッ ド グ ル ー プ の 説 明 に つ い て は clone(2) の CLONE_THREAD の 説 明 を 参 照 の こ と 。
glibc は こ れ ら の シ ス テ ム コ ー ル に 対 す る ラ ッ パ ー 関 数 を 提 供 し て い な い 。 syscall(2) を 使 っ て 呼 び 出 す こ と 。
関 連 項 目
clone(2), gettid(2), kill(2), rt_sigqueueinfo(2)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。