在用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條經驗 獲得超7個贊
#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
提交
取消