NAME
pthread_getspecific
,
pthread_setspecific
—
thread-specific data value
LIBRARY
library “libpthread”
SYNOPSIS
#include
<pthread.h>
void *
pthread_getspecific
(pthread_key_t
key);
int
pthread_setspecific
(pthread_key_t
key, const void
*value);
DESCRIPTION
Thepthread_getspecific
()
function returns the value currently bound to the specified
key on behalf of the calling thread. Conversely, the
pthread_setspecific
() function associates a
thread-specific value with a key obtained via a previous
call to
pthread_key_create(3). Different threads have different values
bound to each key. These values are typically pointers to blocks of
dynamically allocated memory that have been reserved for use by the calling
thread.
Undefined behavior may follow if either
function is called with a key value not obtained from
pthread_key_create(3), or if the call is made after
key has been deleted with
pthread_key_delete(3). It is possible to call either function
from a thread-specific data destructor function. Note however that this is
not well defined for the
pthread_setspecific
()
function; lost storage or infinite loops may occur.
RETURN VALUES
The pthread_getspecific
() function will
return 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 will return zero.
Otherwise an error number will be returned to indicate the error.
ERRORS
No errors are defined for either function.
SEE ALSO
STANDARDS
These functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).