通常,在调用其他函数之前,请先在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;
}