TKILL

Section: Linux Programmer's Manual (2)
Updated: 2014-12-31
Index JM Home Page roff page
 

名前

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
許可がなかった。どのような許可が必要かについては、 kill(2) を参照のこと。
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/ に書かれている。


 

Index

名前
書式
説明
返り値
エラー
バージョン
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 15:33:28 GMT, March 14, 2017