日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PTHREAD_JOIN(3) FreeBSD ライブラリ関数マニュアル PTHREAD_JOIN(3)
名称
pthread_join, pthread_peekjoin_np, pthread_timedjoin_np -- スレッドの終了
状態を調べる
ライブラリ
POSIX スレッドライブラリ (libpthread, -lpthread)
書式
#include <pthread.h>
int
pthread_join(pthread_t thread, void **value_ptr);
#include <pthread_np.h>
int
pthread_peekjoin_np(pthread_t thread, void **value_ptr);
int
pthread_timedjoin_np(pthread_t thread, void **value_ptr,
const struct timespec *abstime);
解説
pthread_join() 関数は、ターゲットの thread がまだ終了していなければ、ター
ゲットの thread が終了するまで、呼び出しているスレッドの実行を保留しま
す。
NULL でない value_ptr 引数を付けて pthread_join() の呼び出しから成功して
返るとき、終了しているスレッドによって pthread_exit() に渡された値は、
value_ptr によって参照される場所に格納されます。pthread_join() が成功して
返るとき、ターゲットのスレッドは、終了しました。同じターゲットのスレッド
を指定する pthread_join() への多数の同時に起こる呼び出しの結果は、未定義
です。pthread_join() を呼び出しているスレッドが取り消されるなら、ターゲッ
トのスレッドは、デタッチされません。
pthread_timedjoin_np() 関数は、ターゲットのスレッドが指定された絶対時間が
経過する前に、終了していないなら、ETIMEDOUT を返すことを除いて、
pthread_join() 関数と同等です。
pthread_peekjoin_np() は、指定されたスレッドの終了ステータスを見るだけで
す。スレッドが終了しなかったなら、EBUSY エラーが、返されます。そうでなけ
れば、0 が、返され、スレッドの終了値は、オプションで *value_ptr の位置に
格納されます。ターゲットのスレッドは、結合していないままにしておかれて、
再び関数の pthread_join() ファミリのための引数として使用することができま
す。
終了したが、結合されずに残っているスレッドは、[_POSIX_THREAD_THREADS_MAX]
に対してカウントされます。
戻り値
成功するなら、説明された関数は、0 を返します。そうでなければ、エラー番号
がエラーまたは特別な条件を示すために返されます。
エラー
pthread_join(), pthread_peekjoin_np() と pthread_timedjoin_np() 関数は、
次の場合に失敗します:
[EINVAL] 実装は、thread によって指定された値が、結合可能なス
レッドを参照していないことを検出しました。
[ESRCH] 与えられたスレッド ID thread によって指定されたものと
対応するスレッドを見つけることができません。
[EDEADLK] デッドロックが検出されたか、または、thread の値が呼び
出しているスレッドを指定しています。
[EOPNOTSUPP] 実装は、別の呼び出し側が thread で既にウェート (待つ)
していることが検出されました。
さらに、pthread_timedjoin_np() 関数は、次の場合に失敗します:
[ETIMEDOUT] pthread_timedjoin_np() が、スレッドの終了をウェート
(待つ) している間に、指定された絶対時間が経過しまし
た。
また、pthread_peekjoin_np() 関数は、次の場合に失敗します:
[EBUSY] 指定されたスレッドは、まだ終了していません。
関連項目
wait(2), pthread(3), pthread_create(3), pthread_np(3)
規格
pthread_join() 関数は、ISO/IEC 9945-1:1996 (``POSIX.1'') に適合していま
す。pthread_timedjoin_np() 関数は、FreeBSD 6.1 ではじめて登場した、
FreeBSD の拡張です。別の拡張、pthread_peekjoin_np() 関数は、FreeBSD 13.0
ではじめて登場しました。
FreeBSD 13.2 October 12, 2021 FreeBSD 13.2