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

pthread_attr_setstacksize(3THR)

pthread_attr_setstacksize(3THR) は、スレッドのスタックの大きさを設定します。

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


プロトタイプ:

int	pthread_attr_setstacksize(pthread_attr_t *tattr, size_t size);

#include <pthread.h>

pthread_attr_t tattr;size_t size;int ret;

size = (PTHREAD_STACK_MIN + 0x4000);

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

上の例では、新しいスレッドが使用するスタックのバイト数が size に納められています。size の値が 0 ならば、デフォルトの大きさが使われます。通常は 0 を指定してください。

PTHREAD_STACK_MIN は、スレッドを起動する上で必要なスタック空間の大きさです。しかし、アプリケーションコードを実行するのに必要なスレッドの関数が必要とするスタック空間の大きさは含まれていません。

戻り値

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


EINVAL

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