我想让一些应用程序在64位处理器(x86 xeon,8核)上运行的64位操作系统中保持4gb的地址空间。我知道有一个使用-m32选项编译的选项,但是现在我使用的计算机没有使用-m32编译所需的支持,所以我不能使用它,也不能在那台计算机上安装任何东西,因为我没有任何权限。
现在我的问题是是否有可能将地址空间限制在4GB。请不要问我为什么要这样做,只要告诉我如果可能的话。谢谢。
最佳答案
ulimit/setrlimit机制可以通过ulimit在bash中访问,但有一些小缺点。
ulimit -v 4000000
应将当前进程组可用的内存限制为4 GB。
但是,它限制了地址空间映射的总大小,并且不限制映射的偏移量
-指针仍可能大于2^32。
关于c - 在64位中将地址空间大小保持为4 GB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7526842/