スレッドにシグナルを送信するには、pthread_kill(3C) を使用します。
int pthread_kill(pthread_t tid, int sig);
#include <pthread.h> #include <signal.h> int sig; pthread_t tid; int ret; ret = pthread_kill(tid, sig);
tid で指定したスレッドに sig で指定したシグナルを送ります。()tid は、呼び出しスレッドと同じプロセス内のスレッドでなければなりません。引数 sig は、signal.h(3HEAD) のリスト中の値でなければなりません。
sig が 0 のときはエラーチェックだけが行われ、シグナルは実際には送られません。このエラーチェックは、 tid の妥当性を検査する目的で使用できます。
pthread_kill() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると pthread_kill() は失敗し、次の値が戻されます。
EINVAL
説明:sig は正しいシグナル番号ではありません。
ESRCH
説明:現在のプロセスに tid が存在しません。