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

名称

pthread_setspecificスレッド特有のデータ値を設定する

ライブラリ

POSIX Threads Library (libpthread, -lpthread)

書式

#include < pthread.h>

int
pthread_setspecific( pthread_key_t key, const void *value);

解説

pthread_setspecific() 関数は、 pthread_key_create() への以前の呼び出しによって取得された key にスレッド特有の値を関連付けます。異なるスレッドは、異なる値を同じキーにバインドすることができます。これらの値は、通常、呼び出しているスレッドによって使用するために予約されている動的に割り付けられたメモリのブロックへのポインタです。

pthread_key_create() から取得していない key の値を付けて、または pthread_key_delete() で key が削除された後に、 pthread_setspecific() を呼び出す結果は、未定義です。

pthread_setspecific() 関数は、スレッドに特有のデータのデストラクタ関数から呼び出されますが、これは、記憶域が失われるか、または無限ループの結果になるかもしれません。

戻り値

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

エラー

pthread_setspecific() 関数は、次の場合に失敗します:
[ ENOMEM]
値と key を関連させるための十分なメモリが存在しません。
[ EINVAL]
key の値が無効です。

規格

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