PTHREAD_SETSPECIFIC(3) FreeBSD ライブラリ関数マニュアル PTHREAD_SETSPECIFIC(3)
名称
pthread_setspecific − スレッド固有のデータ値の設定 |
ライブラリ
Reentrant C Library (libc_r, −pthread) |
書式
#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] 関連項目 |
pthread_getspecific(3), pthread_key_create(3), pthread_key_delete(3) |
規格
pthread_setspecific() は ISO/IEC 9945-1:1996 (‘‘POSIX.1’’) に適合していま す。 FreeBSD 10.0 April 4, 1996 FreeBSD 10.0 |