指定したスレッド固有データキーに対して、スレッド固有の割り当てを設定するには、pthread_setspecific(3C) を使用します。
int pthread_setspecific(pthread_key_t key, const void *value);
#include <pthread.h> pthread_key_t key; void *value; int ret; /* key previously created */ ret = pthread_setspecific(key, value);
pthread_setspecific() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下のいずれかの条件が検出されると pthread_setspecific() は失敗し、対応する値を返します。
ENOMEM
説明:仮想メモリーが不足しています。
EINVAL
説明:キーが無効です。
pthread_setspecific() は、新しい割り当てが設定されても、記憶領域を解放しません。既存の割り当ては、解放する必要があります。解放しない場合は、メモリーリークが発生することがあります。