Cプログラムのlinux-64ビットの/ proc/pid/mapsからスタックサイズがわかりました。私はスタックサイズに関する次の行を見ることができました。stack size from proc/pid/maps in C
7fffc2e14000-7fffc2e35000 rw-p 00000000 00:00 0 [stack]
私は上記の値を理解していません。私は違いを取る場合、私は小数で135168の違いを得る。しかしこれは8MBに近いものではありません。私はそれを間違って解釈していますか?
しかし、私はRLIMITを印刷する場合:
int main (void)
{
struct rlimit limit;
getrlimit (RLIMIT_STACK, &limit);
printf ("\nStack Limit = %ld and %ld max\n", limit.rlim_cur, limit.rlim_max);
}
出力: スタックリミット= 8388608と-1最大
私は8メガバイトまで来スタックリミット= 8388608取得します。
私は、スタック上にあるすべてが 'struct rlimit'であることを考えると、それほど大きな驚きです。 ;-)それは成長する余地があると思う...スタックの成長にどれくらいの余裕があるかを知るために、 'limit'のアドレスを出力するのは興味深いでしょう。 – mpontillo