スポンサーリンク

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]
key
の値が無効です。

関連項目

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

スポンサーリンク