在用GNU编译器编译时更改Linux中C+应用程序的堆栈大小在OSX中,在C+程序编译过程中使用g++我用LD_FLAGS= -Wl,-stack_size,0x100000000但是在SUSE Linux中,我经常会遇到这样的错误:x86_64-suse-linux/bin/ld: unrecognized option '--stack'和类似的。我知道可以用ulimit -s unlimited但是这并不是很好,因为单个用户并不总是能做到这一点。如何在Linux中为单个应用程序增加堆栈大小?
3 回答
LEATH
TA贡献1936条经验 获得超6个赞
#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;}
main()
main()
getrlimit
/setrlimit
main()
缥缈止盈
TA贡献2041条经验 获得超4个赞
stack_size
--stack
gcc -Wl,--stack,4194304 -o program program.c
添加回答
举报
0/150
提交
取消