AIX Version 4.3 Base Operating System and Extensions Technical Reference, Volume

pthread_getspecific or pthread_setspecific Subroutine


Returns and sets the thread-specific data associated with the specified key.


Threads Library (libpthreads.a)



void *pthread_getspecific (key)

pthread_key_t key;

void *pthread_setspecific (key, value)

pthread_key_t key;

const void *value;


The pthread_setspecific function associates a thread-specific value with a key
obtained via a previous call to pthread_key_create. Different threads may bind
different values to the same key. These values are typically pointers to blocks
of dynamically allocated memory that have been reserved for use by the calling

The pthread_getspecific function returns the value currently bound to the
specified key on behalf of the calling thread.

The effect of calling pthread_setspecific or pthread_getspecific with a key value
not obtained from pthread_key_create or after key has been deleted with
pthread_key_delete is undefined.

Both pthread_setspecific and pthread_getspecific may be called from a
thread-specific data destructor function. However, calling pthread_setspecific
from a destructor may result in lost storage or infinite loops.


key Specifies the key to which the value is bound.

value Specifies the new thread-specific value.

Return Values

The function pthread_getspecific returns the thread-specific data value
associated with the given key. If no thread-specific data value is associated
with key, then the value NULL is returned. If successful, the pthread_setspecific
function returns zero. Otherwise, an error number is returned to indicate the

Error Codes

The pthread_setspecific function will fail if:

ENOMEM Insufficient memory exists to associate the value with the key.

The pthread_setspecific function may fail if:

EINVAL The key value is invalid.

No errors are returned from pthread_getspecific.

These functions will not return an error code of EINTR.

Implementation Specifics

These subroutines are part of the Base Operating System (BOS) Runtime.

Related Information

The pthread_key_create subroutine, the pthread.h file.

Thread-Specific Data in AIX Version 4.3 General Programming Concepts: Writing and
Debugging Programs.

Threads Library Quick Reference in AIX Version 4.3 General Programming Concepts:
Writing and Debugging Programs.