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_destroy 将 attr 引用的对象设置为无效值。 可以使用 pthread_mutexattr_init重新初始化已破坏的互斥属性对象; 未定义在对象被破坏后以其他方式引用该对象的结果。
参数
| 项 | 描述 |
|---|---|
| attr | 指定要初始化或删除的互斥属性对象。 |
返回值
成功完成后, pthread_mutexattr_init 和 pthread_mutexattr_destroy 返回零。 否则,将返回错误号以指示错误。
错误代码
在下列情况下, pthread_mutexattr_init 函数将失败:
| 项 | 描述 |
|---|---|
| ENOMEM | 内存不足,无法初始化互斥属性对象。 |
在下列情况下, pthread_mutexattr_destroy 函数将失败:
| 项 | 描述 |
|---|---|
| EINVAL | attr 指定的值无效。 这些函数不会返回 EINTR。 |