【发布时间】:2016-02-01 07:49:38
【问题描述】:
我需要运行一个 C 程序,它在执行时将使用大约20Gb 的 RAM。我从 Change stack size for a C++ application in Linux during compilation with GNU compiler 那里得到了帮助。
我正在尝试使用setrlimit 在 Linux 上扩展堆栈大小。但是当我尝试将20*1024*1024*1024 分配给rlim_cur 时,编译器
warning: integer overflow in expression [-Woverflow]
如何扩展堆栈?
【问题讨论】:
-
也许尝试使用堆代替?问题很可能是您无法将 20*1024*1024*1024 存储到 rlim_cur 中,因为它只是一个整数。您尝试存储的数字是 35 位长,因此您不能将其存储在 32 位整数中。
-
如果 rlim_cur 是 32 位 int,您可能在 32 位平台上,无论如何都无法处理超过 4GB 的数据。
arch命令说明了什么?