マルチスレッドのプログラミング

pthread_attr_setstacksize(3T)

スタックサイズ属性は、システムが割り当てるスタックの大きさ (バイト数) を定義します。この大きさは、システムで定義された最小のスタックの大きさを下回ってはいけません。詳細は、「スタックについて」を参照してください。

プロトタイプ:

int	pthread_attr_setstacksize(pthread_attr_t *tattr, int size);
#include <pthread.h>

pthread_attr_t tattr;
int size;
int ret;

size = (PTHREAD_STACK_MIN + 0x4000);

/* 新しい大きさを設定する */
ret = pthread_attr_setstacksize(&tattr, size);

上の例では、新しいスレッドが使用するスタックの大きさが size に格納されます。size の値が 0 ならば、デフォルトの大きさが使われます。ほとんどの場合、0 を指定すれば最善の結果が得られます。

PTHREAD_STACK_MIN は、スレッドを起動する上で必要なスタック空間の大きさです。ただし、アプリケーションコードを実行するのに必要なスレッドルーチンは考慮に入れていません。

戻り値

正常終了時は 0 です。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、対応する値を戻します。


EINVAL

戻された値が PTHREAD_STACK_MIN より小さいか、システムの制限を超えているか、または tattr の値が無効です。