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

戻り値

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


EINVAL

base または tattr の値が正しくありません。

次の例は、独自のスタックアドレスとサイズを指定してスレッドを生成する方法を示します。


#include <pthread.h>

pthread_attr_t tattr;
pthread_t tid;
int ret;
void *stackbase;

/* デフォルト属性で初期化する */
ret = pthread_attr_init(&tattr);

/* スタックの大きさを設定する */
ret = pthread_attr_setstacksize(&tattr, size);

/* スタックの基底アドレスを設定する */
ret = pthread_attr_setstackaddr(&tattr, stackbase);

/* アドレスと大きさを指定する */
ret = pthread_create(&tid, &tattr, func, arg);