PTHREAD_ATTR_INIT(3) | Library Functions Manual | PTHREAD_ATTR_INIT(3)

# NAME

`pthread_attr_init`, `pthread_attr_destroy` — initialise and destroy threads attribute object

# SYNOPSIS

POSIX Threads Library (libpthread, -lpthread)
`#include <pthread.h>`

int
`pthread_attr_init`(pthread_attr_t *attr);

int
`pthread_attr_destroy`(pthread_attr_t *attr);

# DESCRIPTION

The function `pthread_attr_init`() initialises a thread attributes object attr with the default value for all of the individual attributes used by a given implementation.

The resulting attribute object (possibly modified by setting individual attribute values), when used by pthread_create(3), defines the attributes of the thread created. A single attributes object can be used in multiple simultaneous calls to pthread_create(3).

The `pthread_attr_destroy`() function is used to destroy a thread attributes object. An implementation may cause `pthread_attr_destroy`() to set attr to an implementation-dependent invalid value. The behaviour of using the attribute after it has been destroyed is undefined.

# RETURN VALUES

Upon successful completion, `pthread_attr_init`() and `pthread_attr_destroy`() return a value of 0. Otherwise, an error number is returned to indicate the error.

# ERRORS

The `pthread_attr_init`() function will fail if:

[`ENOMEM`]
  Insufficient memory exists to initialise the thread attributes object.

These functions will not return an error code of [`EINTR`].

# SEE ALSO

pthread_attr_setdetachstate(3), pthread_attr_setguardsize(3), pthread_attr_setstack(3), pthread_attr_setstackaddr(3), pthread_attr_setstacksize(3), pthread_create(3), pthreads(3)

# STANDARDS

`pthread_attr_destroy`() and `pthread_attr_init`() conform to ISO/IEC 9945-1 ANSI/IEEE (“POSIX”) Std 1003.1 Second Edition 1996-07-12.

June 7, 2025 | Debian