pthread_mutexattr_destroy 或 pthread_mutexattr_init 子例程

用途

初始化和破坏互斥属性。

线程库 (libpthreads.a)

语法

#include <pthread.h>

int pthread_mutexattr_init (attr)
pthread_mutexattr_t *attr;

int pthread_mutexattr_destroy (attr)
pthread_mutexattr_t *attr;

描述

函数 pthread_mutexattr_init 使用实现定义的所有属性的缺省值来初始化互斥属性对象 attr

未定义初始化已初始化的互斥属性对象的效果。

在使用互斥属性对象来初始化一个或多个互斥对象之后,任何影响属性对象 (包括破坏) 的函数都不会影响任何先前初始化的互斥对象。

pthread_mutexattr_destroy 函数破坏互斥属性对象; 该对象实际上变为未初始化。 实现可能会导致 pthread_mutexattr_destroyattr 引用的对象设置为无效值。 可以使用 pthread_mutexattr_init重新初始化已破坏的互斥属性对象; 未定义在对象被破坏后以其他方式引用该对象的结果。

参数

描述
attr 指定要初始化或删除的互斥属性对象。

返回值

成功完成后, pthread_mutexattr_initpthread_mutexattr_destroy 返回零。 否则,将返回错误号以指示错误。

错误代码

在下列情况下, pthread_mutexattr_init 函数将失败:

描述
ENOMEM 内存不足,无法初始化互斥属性对象。

在下列情况下, pthread_mutexattr_destroy 函数将失败:

描述
EINVAL attr 指定的值无效。

这些函数不会返回 EINTR。