|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > t > tkill - システムコールの説明 tkill - システムコールの説明 - Linux コマンド集 一覧表名前tkill, tgkill - 個々のプロセスにシグナルを送る 書式
#include <sys/types.h>
#include <linux/unistd.h>
#include <errno.h>
"_syscall2(int, tkill, int, tid, int, sig)"
/* Using syscall(2) may be preferable; see intro(2) */
int tkill(int tid, int sig);
"_syscall3(int, tgkill, int, tgid, int, tid, int, sig)"
/* Using syscall(2) may be preferable; see intro(2) */
int tgkill(int tgid, int tid, int sig);
説明tkill () システムコールは、指定されたプロセスがスレッド・グループに 属している場合以外は kill (2) と同じ動作をする (スレッド・グループは、clone の呼び出し時に CLONE_THREAD フラグを指定することで作成される)。 一つのスレッド・グループに属するプロセスはすべて同じ PID を持つので、 kill () では各々のプロセスに個別にシグナルを送ることができない。 これに対して、tkill () を使うと、プロセスに固有の TID (スレッドID) で 各プロセスを指定することができる。 tgkill () コールは tkill () を改良し、 TID の再利用にも対応できるように、シグナルの送り先を スレッドのスレッド・グループID (tgid) で指定できるようにした ものである。 tgid として -1 が指定された場合は、 tgkill () は tkill () と同じ動作になり、 tgkill () のメリットはなくなる。 これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ内部での使用を意図したものである。 返り値成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 errno が適切に設定される。 エラー
準拠tkill () と tgkill () は Linux 固有であり、 移植を想定したプログラムでは使用すべきではない。 バージョンtkill () は Linux 2.4.19 / 2.5.4 以降でサポートされ、 tgkill () は Linux 2.5.75 で追加された。 関連項目
|
|