PTHREAD_ATTR_SETDETACHSTATE(3) | Library Functions Manual | PTHREAD_ATTR_SETDETACHSTATE(3)

# NAME

`pthread_attr_setdetachstate`, `pthread_attr_getdetachstate` — set and get detachstate attribute

# SYNOPSIS

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

int
`pthread_attr_setdetachstate`(pthread_attr_t *attr, int detachstate);

int
`pthread_attr_getdetachstate`(pthread_attr_t *attr, int *detachstate);

# DESCRIPTION

The detachstate attribute controls whether the thread is created in a detached state. If the thread is created detached, then use of the ID of the newly created thread by the pthread_detach(3) or pthread_join(3) function is an error.

The `pthread_attr_setdetachstate`() and `pthread_attr_getdetachstate`() functions, respectively, set and get the detachstate attribute in the attr object.

The detachstate can be set to either `PTHREAD_CREATE_DETACHED` or `PTHREAD_CREATE_JOINABLE`. A value of `PTHREAD_CREATE_DETACHED` causes all threads created with attr to be in the detached state, whereas using a value of `PTHREAD_CREATE_JOINABLE` causes all threads created with attr to be in the joinable state. The default value of the detachstate attribute is `PTHREAD_CREATE_JOINABLE`.

# RETURN VALUES

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

The `pthread_attr_getdetachstate`() function stores the value of the detachstate attribute in detachstate if successful.

# ERRORS

The `pthread_attr_setdetachstate`() function will fail if:

[`EINVAL`]
  The value of detachstate was not valid.

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

# SEE ALSO

pthread_attr_init(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_setdetachstate`() and `pthread_attr_getdetachstate`() conform to ISO/IEC 9945-1 ANSI/IEEE (“POSIX”) Std 1003.1 Second Edition 1996-07-12.

June 7, 2025 | Debian