Man page - pthread_attr_getguardsize(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

PTHREAD_ATTR_SETGUARDSIZE

名 前
書 åŧ
čĒŦ 明
čŋ” り 値
エ ナ ãƒŧ
バ ãƒŧ ジ ョ ãƒŗ
åąž 性
æē– 拠
æŗ¨ 意
バ グ
例
é–ĸ 逪 項 į›Ž
こ ぎ 文 書 ãĢ つ い ãĻ

名 前

pthread_attr_setguardsize, pthread_attr_getguardsize - ゚ ãƒŦ ッ ド åąž 性 ã‚Ē ブ ジ ェ ク ト ぎ guard size åąž 性 ぎ 設 厚 /取 åž— を 行 う

書 åŧ

#include <pthread.h>

int pthread_attr_setguardsize(pthread_attr_t * attr , size_t guardsize );
int pthread_attr_getguardsize(const pthread_attr_t *
attr ,
size_t *
guardsize );

-pthread で ã‚ŗ ãƒŗ パ イ ãƒĢ し ãĻ ãƒĒ ãƒŗ ク す る 。

čĒŦ 明

pthread_attr_setguardsize () é–ĸ 数 は 、 attr が 参 į…§ す る ゚ ãƒŦ ッ ド åąž 性 ã‚Ē ブ ジ ェ ク ト ぎ guard size åąž 性 を guardsize で 指 厚 さ れ た 値 ãĢ 設 厚 す る 。

guardsize が 0 よ り 大 き い å ´ 合 、 attr を äŊŋ ãŖ ãĻ 新 し く äŊœ 成 さ れ た 各 ゚ ãƒŦ ッ ド ãĢ 寞 し ãĻ 、 ã‚ˇ ゚ テ ム は ゚ ãƒŦ ッ ド ぎ ゚ ã‚ŋ ッ ク ぎ æœĢ å°ž ãĢ 少 ãĒ く と も guardsize バ イ ト ぎ čŋŊ 加 領 域 を 剞 り åŊ“ ãĻ る 。 こ ぎ čŋŊ 加 領 域 は ゚ ã‚ŋ ッ ク ãĢ 寞 す る ã‚Ŧ ãƒŧ ド 領 域 と し ãĻ 抟 čƒŊ す る (た だ し 「 バ グ 」 ぎ ᝀ も 参 į…§ )。

guardsize が 0 ぎ å ´ 合 、 attr を äŊŋ ãŖ ãĻ 新 し く äŊœ 成 さ れ た ゚ ãƒŦ ッ ド は ã‚Ŧ ãƒŧ ド 領 域 を 持 た ãĒ い 。

デ フ り ãƒĢ ト ぎ guard size は ã‚ˇ ゚ テ ム ぎ ペ ãƒŧ ジ ã‚ĩ イ ã‚ē と 同 じ で あ る 。

( pthread_attr_setstack (3) や pthread_attr_setstackaddr (3)を äŊŋ ãŖ ãĻ ) attr で ゚ ã‚ŋ ッ ク ã‚ĸ ド ãƒŦ ゚ åąž 性 が 設 厚 さ れ ãĻ い る å ´ 合 ãĢ は 、 å‘ŧ ãŗ å‡ē し 側 が そ ぎ ゚ ãƒŦ ッ ド ぎ ゚ ã‚ŋ ッ ク を 剞 り åŊ“ ãĻ ãĻ い る こ と を 意 呺 す る ぎ で 、 guard size åąž 性 は į„Ą čĻ– さ れ る (す ãĒ わ ãĄ 、 ã‚ˇ ゚ テ ム ãĢ よ る ã‚Ŧ ãƒŧ ド 領 域 ぎ äŊœ 成 は 行 わ れ ãĒ い )。 こ ぎ å ´ 合 、 ゚ ã‚ŋ ッ ク ã‚Ē ãƒŧ バ ãƒŧ フ ロ ãƒŧ が čĩˇ こ ら ãĒ い よ う ãĢ 寞 å‡Ļ す る ぎ は ã‚ĸ プ ãƒĒ ã‚ą ãƒŧ ã‚ˇ ョ ãƒŗ 側 ぎ č˛Ŧ äģģ と ãĒ る (お そ ら く mprotect (2) を äŊŋ ãŖ ãĻ 、 剞 り åŊ“ ãĻ ら れ た ゚ ã‚ŋ ッ ク ぎ 最 垌 ãĢ 手 動 で ã‚Ŧ ãƒŧ ド 領 域 を 厚 įžŠ す る こ と ãĢ ãĒ る だ ろ う )。

pthread_attr_getguardsize () は 、 ゚ ãƒŦ ッ ド åąž 性 ã‚Ē ブ ジ ェ ク ト attr ぎ guard size åąž 性 を guardsize が 指 す バ ッ フ ã‚Ą ãƒŧ ãĢ å…Ĩ れ ãĻ čŋ” す 。

čŋ” り 値

成 功 す る と 、 こ れ ら ぎ é–ĸ 数 は 0 を čŋ” す 。 エ ナ ãƒŧ ぎ å ´ 合 、 0 äģĨ 外 ぎ エ ナ ãƒŧ į•Ē åˇ を čŋ” す 。

エ ナ ãƒŧ

POSIX.1 で は 、 エ ナ ãƒŧ EINVAL が
attr
か guardsize が į„Ą 劚 ãĒ å ´ 合 ãĢ 寞 し ãĻ čĻ 厚 さ れ ãĻ い る 。 Linux で は 、 こ れ ら ぎ é–ĸ 数 は 常 ãĢ 成 功 す る (た だ し 、 į§ģ 植 性 や 将 æĨ も 動 äŊœ す る こ と を äŋ č¨ŧ し た い ã‚ĸ プ ãƒĒ ã‚ą ãƒŧ ã‚ˇ ョ ãƒŗ で は æ­Ŗ ぎ エ ナ ãƒŧ ぎ čŋ” り 値 を å‡Ļ ᐆ す る よ う ãĢ す ず き で あ る )。

バ ãƒŧ ジ ョ ãƒŗ

こ れ ら ぎ é–ĸ 数 は glibc バ ãƒŧ ジ ョ ãƒŗ 2.1 äģĨ 降 で 提 供 さ れ ãĻ い る 。

åąž 性

こ ぎ ᝀ で äŊŋ ᔍ さ れ ãĻ い る ᔍ čĒž ぎ čĒŦ 明 ãĢ つ い ãĻ は 、 attributes (7) を 参 į…§ 。

Image grohtml-25862-1.png

æē– 拠

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

æŗ¨ 意

ã‚Ŧ ãƒŧ ド 領 域 は 、 čĒ­ ãŋ å‡ē し /書 き čžŧ ãŋ ã‚ĸ ク ã‚ģ ゚ が 行 わ れ ãĒ い よ う ãĢ äŋ č­ˇ が か け ら れ た äģŽ æƒŗ ãƒĄ ãƒĸ ãƒĒ ãƒŧ ペ ãƒŧ ジ で 構 成 で 構 成 さ れ る 。 ゚ ãƒŦ ッ ド が ゚ ã‚ŋ ッ ク を ã‚Ŧ ãƒŧ ド 領 域 ぞ で ã‚Ē ãƒŧ バ ãƒŧ フ ロ ãƒŧ さ せ た å ´ 合 、 ãģ と ん お ぎ ハ ãƒŧ ド ã‚Ļ ェ ã‚ĸ ã‚ĸ ãƒŧ キ テ ク チ ãƒŖ ãƒŧ で は 、 ゚ ãƒŦ ッ ド ãĢ SIGSEGV ã‚ˇ グ ナ ãƒĢ が 送 ら れ 、 ã‚Ē ãƒŧ バ ãƒŧ フ ロ ãƒŧ が į™ē į”Ÿ し た こ と が 通 įŸĨ さ れ る 。 ã‚Ŧ ãƒŧ ド 領 域 は ペ ãƒŧ ジ åĸƒ į•Œ か ら 開 始 さ れ 、 ã‚Ŧ ãƒŧ ド 領 域 ぎ 大 き さ は ゚ ãƒŦ ッ ド äŊœ 成 時 ãĢ 内 部 įš„ ãĢ ã‚ˇ ゚ テ ム ぎ ペ ãƒŧ ジ ã‚ĩ イ ã‚ē ãĢ 切 り 上 げ ら れ る (そ ぎ å ´ 合 も pthread_attr_getguardsize () で は pthread_attr_setguardsize () で 設 厚 さ れ た guard size が čŋ” さ れ る )。

多 く ぎ ゚ ãƒŦ ッ ド を äŊœ 成 す る ã‚ĸ プ ãƒĒ ã‚ą ãƒŧ ã‚ˇ ョ ãƒŗ で 、 か つ 、 ゚ ã‚ŋ ッ ク ã‚Ē ãƒŧ バ ãƒŧ フ ロ ãƒŧ が æąē し ãĻ į™ē į”Ÿ し ãĒ い こ と が 分 か ãŖ ãĻ い る å ´ 合 ãĢ は 、 guard size を 0 ãĢ 設 厚 す る こ と で 、 ãƒĄ ãƒĸ ãƒĒ ãƒŧ を ᝀ į´„ で き る こ と も あ る 。

゚ ãƒŦ ッ ド が ゚ ã‚ŋ ッ ク ãĢ 大 き ãĒ デ ãƒŧ ã‚ŋ 構 造 を 剞 り åŊ“ ãĻ る å ´ 合 ãĢ は 、 ゚ ã‚ŋ ッ ク ã‚Ē ãƒŧ バ ãƒŧ フ ロ ãƒŧ を 検 å‡ē す る た め ãĢ は 、 デ フ り ãƒĢ ト ã‚ĩ イ ã‚ē よ り も 大 き ãĒ guard size を 選 ãļ åŋ… čρ が あ る か も し れ ãĒ い 。

バ グ

glibc 2.8 ぎ 時 į‚š で は 、 NPTL ゚ ãƒŦ ッ ド 原 čŖ… で は ã‚Ŧ ãƒŧ ド 領 域 は ゚ ã‚ŋ ッ ク ã‚ĩ イ ã‚ē で 剞 り åŊ“ ãĻ ら れ る 領 域 ぎ 中 ãĢ åĢ ぞ れ ãĻ い る 。 一 æ–š 、 POSIX.1 で は 、 ゚ ã‚ŋ ッ ク ぎ æœĢ å°ž ãĢ čŋŊ 加 ぎ 領 域 を 剞 り åŊ“ ãĻ る こ と が æą‚ め ら れ ãĻ い る 。 (こ ぎ た め 、 ã‚Ŧ ãƒŧ ド 領 域 が 大 き す ぎ ãĻ 、 原 際 ぎ ゚ ã‚ŋ ッ ク ᔍ ぎ å ´ 所 が ãĒ く ãĒ ãŖ ãĻ し ぞ う å ´ 合 、 pthread_create (3) で EINVAL エ ナ ãƒŧ が į™ē į”Ÿ す る こ と ãĢ ãĒ る 。 )

åģƒ æ­ĸ äēˆ åŽš ぎ LinuxThreads 原 čŖ… で は 、 POSIX.1 で æą‚ め ら れ ãĻ い る 通 り ぎ 動 äŊœ で 、 ã‚Ŧ ãƒŧ ド 領 域 が ゚ ã‚ŋ ッ ク ぎ æœĢ å°ž ãĢ čŋŊ 加 ぎ 領 域 が 剞 り åŊ“ ãĻ ら れ る 。

例

pthread_getattr_np (3) を 参 į…§ 。

é–ĸ 逪 項 į›Ž

mmap (2), mprotect (2), pthread_attr_init (3), pthread_attr_setstack (3), pthread_attr_setstacksize (3), pthread_create (3), pthreads (7)

こ ぎ 文 書 ãĢ つ い ãĻ

こ ぎ man ペ ãƒŧ ジ は Linux man-pages プ ロ ジ ェ ク ト ぎ ãƒĒ ãƒĒ ãƒŧ ゚ 5.10 ぎ 一 部 で あ る 。 プ ロ ジ ェ ク ト ぎ čĒŦ 明 と バ グ å ą 告 ãĢ é–ĸ す る 情 å ą は https://www.kernel.org/doc/man-pages/ ãĢ 書 か れ ãĻ い る 。