Rechercher une page de manuel
tkill
Langue: ja
Version: 2007-06-01 (mandriva - 01/05/08)
Section: 2 (Appels système)
名前
tkill, tgkill - 個々のプロセスにシグナルを送る書式
int tkill(int tid, int sig); int tgkill(int tgid, int tid, int sig);
説明
tkill() システムコールは、指定されたプロセスがスレッド・グループに 属している場合以外は kill(2) と同じ動作をする (スレッド・グループは、clone の呼び出し時に CLONE_THREAD フラグを指定することで作成される)。 一つのスレッド・グループに属するプロセスはすべて同じ PID を持つので、 kill(2) では各々のプロセスに個別にシグナルを送ることができない。 これに対して、 tkill() を使うと、プロセスに固有の TID (スレッドID) で 各プロセスを指定することができる。tgkill() コールは tkill() を改良し、 TID の再利用にも対応できるように、シグナルの送り先を スレッドのスレッド・グループID (tgid) で指定できるようにした ものである。 tgid として -1 が指定された場合は、 tgkill() は tkill() と同じ動作になり、 tgkill() のメリットはなくなる。
これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ内部での使用を意図したものである。
返り値
成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 errno が適切に設定される。エラー
- EINVAL
- 不正な TID またはシグナルが指定された。
- EPERM
- 許可がなかった。どのような許可が必要かについては、 kill(2) を参照のこと。
- ESRCH
- 指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。
バージョン
tkill() は Linux 2.4.19 / 2.5.4 以降でサポートされ、 tgkill() は Linux 2.5.75 で追加された。準拠
tkill() と tgkill() は Linux 固有であり、 移植を想定したプログラムでは使用すべきではない。注意
glibc はこれらのシステムコールに対するラッパー関数を提供していない。 syscall(2) を使って呼び出すこと。関連項目
gettid(2), kill(2)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre