Initialize a thread-attribute object


#include <pthread.h>

int pthread_attr_init( pthread_attr_t *attr );


A pointer to the pthread_attr_t structure that you want to initialize. For more information, see below.



Use the -l c option to qcc to link against this library. This library is usually included automatically.


The pthread_attr_init() function initializes the thread attributes in the thread attribute object attr to their default values:

  • Cancellation requests may be acted on according to the cancellation type (PTHREAD_CANCEL_DEFERRED).
  • Cancellation requests are held pending until a cancellation point (PTHREAD_CANCEL_ENABLE).
  • Threads are put into a zombie state when they terminate, and they stay in this state until you retrieve their exit status or detach them (PTHREAD_CREATE_JOINABLE).
  • Threads inherit the scheduling policy of their parent thread (PTHREAD_INHERIT_SCHED).
  • Threads are scheduled against all threads in the system (PTHREAD_SCOPE_SYSTEM).
  • The stack attributes are set so that the kernel will allocate a 4 KB stack for new threads and free the stacks when the threads terminate.

After initialization, you can use the pthread_attr_* family of functions to get and set the attributes:

Get Set
pthread_attr_getdetachstate() pthread_attr_setdetachstate()
pthread_attr_getguardsize() pthread_attr_setguardsize()
pthread_attr_getinheritsched() pthread_attr_setinheritsched()
pthread_attr_getschedparam() pthread_attr_setschedparam()
pthread_attr_getschedpolicy() pthread_attr_setschedpolicy()
pthread_attr_getscope() pthread_attr_setscope()
pthread_attr_getstackaddr() pthread_attr_setstackaddr()
pthread_attr_getstacklazy() pthread_attr_setstacklazy()
pthread_attr_getstacksize() pthread_attr_setstacksize()

You can also set some non-POSIX attributes; for more information, see QNX extensions, in the documentation for pthread_create().

You can then pass the attribute object to pthread_create() to create a thread with the required attributes. You can use the same attribute object in multiple calls to pthread_create().

The effect of initializing an already-initialized thread-attribute object is undefined.




POSIX 1003.1 THR

Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes