PTHREAD_KILL

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

pthread_kill - スレッドにシグナルを送信する  

書式

#include <signal.h>

int pthread_kill(pthread_t thread, int sig);

-pthread を付けてコンパイルとリンクを行う。

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

pthread_kill():

_POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500
 

説明

pthread_kill() 関数は、呼び出したスレッドと同じプロセスの スレッド thread にシグナル sig を送信する。 シグナルは非同期に thread へ直接送られる。

sig が 0 の場合、シグナルは送信されないが、エラーチェックだけは実行される。  

返り値

成功すると、 pthread_kill() は 0 を返す。 エラーの場合、エラー番号を返し、シグナルの送信は行わない。  

エラー

EINVAL
無効なシグナルが指定された。
 

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
pthread_kill() Thread safety MT-Safe
 

準拠

POSIX.1-2001, POSIX.1-2008.  

注意

シグナルの配送はプロセス全体で行われる。 シグナルハンドラーが設定されている場合、 そのハンドラーがスレッド thread で起動されるが、 シグナルの配送が "stop", "continue", "terminate" のいずれかの場合、 シグナルに対するアクションはプロセス全体に影響がある。

The glibc implementation of pthread_kill() gives an error (EINVAL) on attempts to send either of the real-time signals used internally by the NPTL threading implementation. See nptl(7) for details.

POSIX.1-2008 では、 スレッドが終了した後にそのスレッド ID が使用されたことを検出した場合に、 pthread_kill() はエラー ESRCH を返すことを推奨されている。 glibc の実装では、無効なスレッド ID を検出できる場合にはこのエラーを返す。 しかし、 POSIX では、 終了したスレッド ID を使おうとした場合の動作は不定であり、 pthread_kill() で無効なスレッド ID を使おうとした場合には、 例えば、 セグメンテーションフォールトになる可能性もある点に注意すること。  

関連項目

kill(2), sigaction(2), sigpending(2), pthread_self(3), pthread_sigmask(3), raise(3), pthreads(7), signal(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

シグナル   スレッド   配送   ブロック   マスク   ハンドラ   受信   登録   エラーコード   LinuxThreads   pthread   ハンドリング   領域   格納   意味   現時点   共通   番号   Xavier   Leroy   外部   特定   実際   sigmask   kill

Linux マニュアル 一覧

関連するコマンド・関数

killall.1   raise.3   kill.1   pthread_kill_other_threads_np.3   fuser.1   tgkill.2
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:22 GMT, October 11, 2026