Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       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 が再利用される
       場合に、 意図しないスレッドにシグナルが送られる可能性がある。 このシステムコールの使用は避
       けること。

       tgid に -1 が指定された場合、 tgkill()  は tkill()  と等価である。

       これらはシステムコールへの直接のインターフェースであり、  スレッド・ライブラリ内部での使用
       を意図したものである。

返り値

       成功した場合、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.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。