pthread_condattr_init() - 条件属性オブジェクトの初期化

標準

標準/拡張機能 C/C++ 依存項目

POSIX.4a
Single UNIX Specification、バージョン 3

両方

POSIX(ON)

形式

#define _OPEN_THREADS
#include <pthread.h>

int pthread_condattr_init(pthread_condattr_t *attr);
SUSV3:
#define _UNIX03_THREADS
#include <pthread.h>

int pthread_condattr_init(pthread_condattr_t *attr);

機能説明

作成される条件変数のデフォルトを確立します。条件属性 (condattr) オブジェクトには、各種の条件変数特性が 含まれています。これらの特性のテンプレートを設定してから、類似の特性をもつ条件変数を 1 組 作成できます。

条件変数属性オブジェクトは、mutex 属性オブジェクトに類似しています。これらを使用して、アプリケーション内の条件変数の特性を管理できます。これらは、生成時に条件変数で使用される値の集合を定義します。 有効な条件変数属性については、『pthread_condattr_setkind_np() -- 条件変数 属性オブジェクトからの種類属性の設定』および『pthread_condattr_setpshared() -- プロセス 共用条件変数属性の設定』を参照してください。

pthread_condattr_init() は、条件変数属性オブジェクトを定義する場合に 使用されます。pthread_condattr_destroy() は、条件変数属性オブジェクトの 定義を削除する場合に使用されます。これらの機能は、移植性の目的で提供されます。

pthread_cond_init() 呼び出し中に NULL パラメーターを提供すると、これらの関数を使用しないで条件変数を定義することができます。詳細は、pthread_cond_init() - 条件変数の初期化を参照してください。

戻り値

正常に実行された場合、pthread_condattr_init() は 0 を戻します。

正常に実行されなかった場合、pthread_condattr_init() は -1 を戻して、errno を次のいずれかの 値に設定します。
エラー・コード
説明
ENOMEM
条件変数属性オブジェクトを初期設定するためのメモリーが 不十分です。

Single UNIX Specification、バージョン 3 の特殊な動作: 正常に実行されなかった場合、pthread_condattr_init() はエラーを示すエラー番号を戻します。

CELEBP25
⁄* CELEBP25 *⁄                                   
#define _OPEN_THREADS                                                           
#include <pthread.h>                                                            
#include <stdio.h>                                                              
                                                                                
main() {                                                                        
  pthread_condattr_t cond;                                                      
                                                                                
  if (pthread_condattr_init(&cond) != 0) {                                      
    perror("pthread_condattr_init() error");                                    
    exit(1);                                                                    
  }                                                                             
                                                                                
  if (pthread_condattr_destroy(&cond) != 0) {                                   
    perror("pthread_condattr_destroy() error");                                 
    exit(2);                                                                    
  }                                                                             
}                                                                               

関連情報