EN JA
PTHREAD_ONCE(3)
PTHREAD_ONCE(3) FreeBSD Library Functions Manual PTHREAD_ONCE(3)

名称

pthread_once動的パッケージの初期化

ライブラリ

POSIX Threads Library (libpthread, -lpthread)

書式

#include < pthread.h>

pthread_once_t once_control = PTHREAD_ONCE_INIT;
int
pthread_once( pthread_once_t *once_control, void (*init_routine)(void));

解説

与えられた once_control で、プロセスのあらゆるスレッドによって pthread_once() への最初の呼び出しは、引数なしで、 init_routine() を呼び出します。その後の同じ once_controlpthread_once() への呼び出しは、 init_routine() を呼び出しません。 pthread_once() からの返りで、 init_routine() が完了したことが保証されます。 once_control パラメータは、関連する初期設定ルーチンが呼び出されたかどうかを決定するために使用されます。

関数 pthread_once() は、取り消しポイントではありません。しかしながら、 init_routine() が取り消しポイントであり、取り消されるなら、 once_control での効果は、あたかも pthread_once() が決して呼び出されないかのようになります。

定数 PTHREAD_ONCE_INIT は、ヘッダ < pthread.h> で定義されています。

pthread_once() の振る舞いは、 once_control が自動的な記憶域期間があるか、または PTHREAD_ONCE_INIT によって初期化されていないなら、未定義です。

戻り値

成功したなら、 pthread_once() 関数は、0 を返します。そうでなければ、エラー番号がエラーを示すために返されます。

エラー

なし。

規格

pthread_once() 関数は、 ISO/IEC 9945-1:1996 (“POSIX.1”) に適合しています。
April 4, 1996 FreeBSD