pthread_attr_init()
属性オブジェクトを初期化します。
int pthread_attr_init(pthread_attr_t *attr);
pthread_attr_init()
は、attrで指定した属性オブジェクトを初期化し、属性オブジェクト中の全ての属性に実装が与えるデフォルトの値をセットします。
pthread_attr_init()
で初期化し、場合によっては属性の値を変更した属性オブジェクトは、pthread_create()
の引数に与える事によって、新たに作成したスレッドの属性を設定します。1つの属性オブジェクトを同時に複数のスレッドの初期化に使用する事は可能です。
pthread_attr_init()
が成功した時には0を返します。他の場合は、以下に示す通りのエラーに応じた値を返します。
pthread_attr_destroy()
属性オブジェクトを破棄します。
int pthread_attr_destroy(pthread_attr_t *attr);
pthread_attr_destroy()
は、attrで指定された属性オブジェクトを破棄します。実装によっては、破棄した上に無効値を書き込む事もあります。破棄済みの属性オブジェクトを使用してスレッドを作成しようとした時の動作は未定義です。
pthread_attr_destroy()
が成功した時には0を返します。他の場合は、以下に示す通りのエラーに応じた値を返します。と仕様上はなっていますが、以下に示す通り、pthread_attr_destroy()
には返るべきエラーが定義されていません。
pthread_attr_destroy()
は、エラーコード[EINTR]で返る事はありません。
pthread_attr_setdetachstate()
属性オブジェクトのdetachstate属性をセットします。
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
pthread_attr_setdetachstate()
は、attrで指定された属性オブジェクトのdetachstate属性をdetachstateに設定します。後述する通り、detachstateにはPTHREAD_CREATE_DETACHED
かPTHREAD_CREATE_JOINABLE
のいずれかを指定します。
detachstate属性は、スレッドがpthread_detach()
を呼ばれた状態で作成されるかを制御します。
detachstateが取る値は、pthread.hに定義されている2つの値のいずれかです。
PTHREAD_CREATE_DETACHEDを設定した属性オブジェクトを用いると、pthread_detach()
が呼ばれた状態でスレッドを作成します。
PTHREAD_CREATE_JOINABLEを設定した属性オブジェクトを用いると、そのスレッドに対してpthread_join()
を呼び出す事が可能になります。
detachstate属性のデフォルト値はPTHREAD_CREATE_JOINABLEです。
pthread_attr_setdetachstate()
が成功した時には0を返します。他の場合は、以下に示す通りのエラーに応じた値を返します。
detachstateが不正です。
pthread_attr_setdetachstate()
は、エラーコード[EINTR]で返る事はありません。
pthread_attr_getdetachstate()
属性オブジェクトのdetachstate属性を取得します。
int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate);
pthread_attr_getdetachstate()
は、attrで指定された属性オブジェクトのdetachstate属性を取得して、detachstateに格納します。
detachstate属性の説明は、pthread_attr_setdetachstate()
を参照して下さい。
pthread_attr_getdetachstate()
が成功した時には0を返します。他の場合は、以下に示す通りのエラーに応じた値を返します。と仕様上はなっていますが、以下に示す通り、pthread_attr_getdetachstate()
には返るべきエラーが定義されていません。
pthread_attr_getdetachstate()
は、エラーコード[EINTR]で返る事はありません。
pthread_attr_setguardsize()
属性オブジェクトのguardsize属性をセットします。
int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
pthread_attr_setguardsize()
は、attrで指定された属性オブジェクトのguardsize属性をguardsizeにセットします。
guardsize属性は、作成されたスレッドのスタックの「ガードサイズ」の大きさを設定します。
pthread_attr_getguardsize()
属性オブジェクトのguardsize属性を取得します。
int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);