Manpages

名 前

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 以 降 で 提 供 さ れ て い る 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 pthread_attr_setstacksize() と pthread_attr_getstacksize() は ス レ ッ ド セ ー フ で あ る 。

準 拠

POSIX.1−2001.

注 意

新 し い ス レ ッ ド の デ フ ォ ル ト の ス タ ッ ク サ イ ズ の 詳 細 に つ い て は pthread_create(3) を 参 照 。 ス レ ッ ド の ス タ ッ ク サ イ ズ は 、 ス レ ッ ド 作 成 時 点 で は 固 定 で あ る 。 メ イ ン ス レ ッ ド だ け が ス タ ッ ク を 動 的 に 伸 ば す こ と が で き る 。

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

バ グ

glibc 2.8 の 時 点 で は 、 指 定 さ れ た stacksizeSTACK_ALIGN (ほ と ん ど の ア ー キ テ ク チ ャ ー で は 16 バ イ ト ) の 倍 数 で な い 場 合 、 stacksize小 さ く な る 方 向 に に 丸 め ら れ る 。 こ れ は POSIX.1−2001 に 違 反 し て い る 。 POSIX.1−2001 で は 、 割 り 当 て ら た ス タ ッ ク の 大 き さ は 少 な く と も 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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。