I need to do it for a C++ program that needs a lot of stack. I use g++ (included in OS X Lion) to compile it. How could I increase it for my program?
From http://developer.apple.com/library/mac/#qa/qa1419/_index.html
Using gcc, pass link flags through to ld with -Wl:
gcc -Wl,-stack_size -Wl,1000000 foo.c
You can use getrlimit
/setrlimit
- this works on Linux, Mac OS X, and other POSIX-ish operating systems, e.g.
#include <sys/resource.h>
int main (int argc, char **argv)
{
const rlim_t kStackSize = 16 * 1024 * 1024; // min stack size = 16 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;
}