TKILL
Section: Linux Programmer's Manual (2)
Updated: 2007-06-01
Index
JM Home Page
roff page
名前
tkill, tgkill - 個々のプロセスにシグナルを送る
書式
int tkill(int tid, int sig);
int tgkill(int tgid, int tid, int sig);
説明
tkill()
システムコールは、指定されたプロセスがスレッド・グループに
属している場合以外は
kill(2)
と同じ動作をする (スレッド・グループは、
clone(2)
の呼び出し時に
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)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:08 GMT, November 19, 2007