Creates a thread attributes object and initializes it with default values.
Threads Library (libpthreads.a)
#include <pthread.h>
  int pthread_attr_init ( attr)
pthread_attr_t *attr;
The pthread_attr_init subroutine creates a new thread attributes object attr. The new thread attributes object is initialized with the following default values:
| Attribute | Default value | 
|---|---|
| Detachstate | PTHREAD_CREATE_JOINABLE | 
| Contention-scope | PTHREAD_SCOPE_SYSTEM the default ensures compatibility with implementations that do not support this POSIX option. | 
| Inheritsched | PTHREAD_INHERITSCHED | 
| Schedparam | A sched_param structure which sched_prio field is set to 1, the least favored priority. | 
| Schedpolicy | SCHED_OTHER | 
| Stacksize | PTHREAD_STACK_MIN | 
| Guardsize | PAGESIZE | 
The resulting attribute object (possibly modified by setting individual attribute values), when used by pthread_create, defines the attributes of the thread created. A single attributes object can be used in multiple simultaneous calls to pthread_create.
| Item | Description | 
|---|---|
| attr | Specifies the thread attributes object to be created. | 
Upon successful completion, the new thread attributes object is filled with default values and returned via the attr parameter, and 0 is returned. Otherwise, an error code is returned.
The pthread_attr_init subroutine is unsuccessful if the following is true:
| Item | Description | 
|---|---|
| EINVAL | The attr parameter is not valid. | 
| ENOMEM | There is not sufficient memory to create the thread attribute object. | 
This function will not return an error code of [EINTR].