PTHREAD_ATTR_SETSTACKSIZE

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

pthread_attr_setstacksize, pthread_attr_getstacksize - スレッド属性オブジェクトのスタックサイズ属性の設定/取得を行う  

書式

#include <pthread.h>

int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
int pthread_attr_getstacksize(const pthread_attr_t *attr,
                              size_t *stacksize);

-pthread でコンパイルしてリンクする。
 

説明

pthread_attr_setstacksize() 関数は、 attr が参照するスレッド属性オブジェクトのスタックアドレス 属性を stacksize で指定された値に設定する。

スタックサイズ属性により、 スレッド属性オブジェクト attr を使って作成されたスレッド に割り当てられる最小サイズ (バイト単位) が決定される。

pthread_attr_getstacksize() は、 スレッド属性オブジェクト attr のスタックアドレス属性を stacksize が指すバッファーに入れて返す。  

返り値

成功すると、これらの関数は 0 を返す。 エラーの場合、0 以外のエラー番号を返す。  

エラー

pthread_attr_setstacksize() は以下のエラーで失敗する場合がある。
EINVAL
スタックサイズが PTHREAD_STACK_MIN (16384) バイト未満である。

いくつかのシステムでは、 pthread_attr_setstacksize() は stacksize がシステムのページサイズの倍数でない場合にも エラー EINVAL で失敗する。  

バージョン

これらの関数は glibc バージョン 2.1 以降で提供されている。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
pthread_attr_setstacksize(), pthread_attr_getstacksize() Thread safety MT-Safe
 

準拠

POSIX.1-2001, POSIX.1-2008.  

注意

新しいスレッドのデフォルトのスタックサイズの詳細については pthread_create(3) を参照。

スレッドのスタックサイズは、スレッド作成時点では固定である。 メインスレッドだけがスタックを動的に伸ばすことができる。

pthread_attr_setstack(3) 関数を使うと、 アプリケーションは、スレッドが使用するスタックとして、 呼び出し側で割り当てたスタックのサイズと場所を指定できる。  

バグ

glibc 2.8 の時点では、指定された stacksize が STACK_ALIGN (ほとんどのアーキテクチャーでは 16 バイト) の倍数でない場合、 stacksize は小さくなる方向にに丸められる。これは POSIX.1 に違反している。 POSIX.1 では、割り当てらたスタックの大きさは少なくとも stacksize バイトになると書かれている。  

例

pthread_create(3) を参照。  

関連項目

getrlimit(2), pthread_attr_init(3), pthread_attr_setguardsize(3), pthread_attr_setstack(3), pthread_create(3), pthreads(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

attr   スタック   スレッド   属性   pthread   setstacksize   getstacksize   バイト   create   size   アドレス   倍数   時点   setstack   コンパイル   最小   単位   決定   バッファー   成功   番号   未満   提供   用語   allbox

Linux マニュアル 一覧

関連するコマンド・関数

pthread_attr_setstacksize.3   pthread_attr_getstack.3   pthread_attr_setstack.3   pthread_attr_getstackaddr.3   pthread_attr_setstackaddr.3   pthread_attr_destroy.3
 

Index

名前
書式
説明
返り値
エラー
バージョン
属性
準拠
注意
バグ
例
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:15 GMT, October 11, 2026