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

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

返り値

       成功した場合、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/ に書かれている。