linux 修改堆栈大小,使用setrlimit在Linux中增加堆栈大小

通常,在调用其他函数之前,请先在main()的开头设置堆栈大小e,g。通常逻辑是:

>调用getrlimit获取当前的堆栈大小

>如果当前大小

>调用setrlimit将堆栈大小增加到所需的大小

在C中可能编码如下:

#include

int main (int argc, char **argv)

{

const rlim_t kStackSize = 64L * 1024L * 1024L; // min stack size = 64 Mb

struct rlimit rl;

int result;

result = getrlimit(RLIMIT_STACK, &rl);

if (result == 0)

{

if (rl.rlim_cur < kStackSize)

{

rl.rlim_cur = kStackSize;

result = setrlimit(RLIMIT_STACK, &rl);

if (result != 0)

{

fprintf(stderr, "setrlimit returned result = %d\n", result);

}

}

}

// ...

return 0;

}