標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
POSIX.4a |
両方 | POSIX(ON) |
#define _OPEN_THREADS
#define _OPEN_SYS
#include <pthread.h>
int pthread_mutexattr_init(pthread_mutexattr_t *attr);
#define _UNIX03_THREADS
#define _OPEN_SYS
#include <pthread.h>
int pthread_mutexattr_init(pthread_mutexattr_t *attr);
mutex 属性オブジェクトを初期設定します。mutex 属性オブジェクトを使用して、アプリケーションの mutex の特性を管理できます。これは、生成時に mutex に使用される一連の値を定義します。mutex 属性オブジェクトを確立すると、mutex ごとの特性およびすべて の mutex の特性を定義しないで、同じ一連の特性をもつ多数の mutex を 作成できます。
有効な mutex 属性については、pthread_mutexattr_setkind_np() - mutex 属性オブジェクトの種類の設定を参照してください。
正常に実行された場合、pthread_mutexattr_init() は 0 を戻します。
Single UNIX Specification、バージョン 3 の特殊な動作
正常に実行されなかった場合、pthread_mutexattr_init() はエラーを示すエラー番号を戻します。
⁄* CELEBP44 *⁄
#define _OPEN_THREADS
#define _OPEN_SYS ⁄* Needed to identify __MUTEX_RECURSIVE *⁄
#include <pthread.h>
#include <stdio.h>
main() {
pthread_mutexattr_t attr;
pthread_mutex_t mutex;
if (pthread_mutexattr_init(&attr) != 0) {
perror("pthread_mutex_attr_init() error");
exit(1);
}
if (pthread_mutexattr_setkind_np(&attr, __MUTEX_RECURSIVE) != 0) {
perror("pthread_mutex_attr_setkind_np() error");
exit(2);
}
if (pthread_mutex_init(&mutex, &attr) != 0) {
perror("pthread_mutex_init() error");
exit(3);
}
if (pthread_mutexattr_destroy(&attr) != 0) {
perror("pthread_mutex_attr_destroy() error");
exit(4);
}
}