pthread_attr_init(3THR) は、オブジェクトの属性をデフォルト値に初期化します。その記憶領域は、実行中にスレッドシステムによって割り当てられます。
プロトタイプ: int pthread_attr_init(pthread_attr_t *tattr); #include <pthread.h> pthread_attr_t tattr; int ret; /* 属性をデフォルト値に初期化する */ ret = pthread_attr_init(&tattr); |
表 3-1 に属性 (tattr) のデフォルト値を示します。
表 3-1 tattr のデフォルト属性値
属性 |
値 |
結果 |
---|---|---|
scope |
PTHREAD_SCOPE_PROCESS |
新しいスレッドは非結合 (LWP に固定的に結合されない) |
detachstate |
PTHREAD_CREATE_JOINABLE |
スレッドの終了後に終了状態とスレッドが保存される |
stackaddr |
NULL |
新しいスレッドはシステムによって割り当てられたスタックアドレスをもつ |
stacksize |
1M バイト |
新しいスレッドはシステムによって定義されたスタックの大きさをもつ |
priority |
|
新しいスレッドは親スレッドの優先順位を継承する |
inheritsched |
PTHREAD_INHERIT_SCHED |
新しいスレッドは親スレッドのスケジューリング優先順位を継承する |
schedpolicy |
SCHED_OTHER |
新しいスレッドは Solaris で定義された固定的な優先順位スケジューリングを使用する。スレッドは、優先順位の高いスレッドに取って代わられるまで、あるいはブロックするか実行権を明け渡すまで動作する |
正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を返します。
ENOMEM
メモリーが不足し、スレッド属性オブジェクトを初期化できないときに返されます。