---
name: "pthread_mutexattr_destroy"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/pthread_mutexattr_init"
---

# pthread\_mutexattr\_destroy(3)

initialize and destroy a mutex attributes object

Part of [pthread\_mutexattr\_init(3)](/pthread_mutexattr_init/3.md).

## NAME

pthread\_mutexattr\_init, pthread\_mutexattr\_destroy - initialize and destroy a mutex attributes object

## LIBRARY

POSIX threads library (*libpthread*, *-lpthread*)

## SYNOPSIS

```
#include <pthread.h>
```

**int pthread\_mutexattr\_init(pthread\_mutexattr\_t \****attr***);** **int pthread\_mutexattr\_destroy(pthread\_mutexattr\_t \****attr***);**

## DESCRIPTION

The **pthread\_mutexattr\_init**() function initializes the mutex attributes object pointed to by *attr* with default values for all attributes defined by the implementation.

The results of initializing an already initialized mutex attributes object are undefined.

The **pthread\_mutexattr\_destroy**() function destroys a mutex attribute object (making it uninitialized). Once a mutex attributes object has been destroyed, it can be reinitialized with **pthread\_mutexattr\_init**().

The results of destroying an uninitialized mutex attributes object are undefined.

## RETURN VALUE

On success, these functions return 0. On error, they return a positive error number.

## STANDARDS

POSIX.1-2008.

## HISTORY

POSIX.1-2001.

## NOTES

Subsequent changes to a mutex attributes object do not affect mutex that have already been initialized using that object.

## SEE ALSO

[**pthread\_mutex\_init**(3)](/pthread_mutex_init/3.md), [**pthread\_mutexattr\_getpshared**(3)](/pthread_mutexattr_getpshared/3.md), [**pthread\_mutexattr\_getrobust**(3)](/pthread_mutexattr_getrobust/3.md), [**pthreads**(7)](/pthreads/7.md)
