Pau*_*aul 14 c c++ memory-management
有没有办法轻松地将C/C++应用程序限制到指定的内存量(30 mb左右)?例如:如果我的应用程序试图完成将50mb文件加载到内存中,它将死/打印消息并退出/等.
不可否认,我可以不断检查应用程序的内存使用情况,但是如果我超过它就会因为错误而死亡会更容易一些.
有任何想法吗?
平台不是一个大问题,windows/linux /无论编译器.
dmc*_*kee 10
阅读ulimit有关unix系统的手册页.您可以在启动可执行文件之前调用shell,或者(在手册的第3部分中)调用同名的API调用.
小智 5
覆盖所有 malloc API,并提供 new/delete 的处理程序,以便您可以预订内存使用情况并在需要时抛出异常。
不确定这是否比通过操作系统提供的 API 进行内存监控更容易/省力。
在bash中,使用ulimit内置:
bash$ ulimit -v 30000
bash$ ./my_program
Run Code Online (Sandbox Code Playgroud)
-v需要1K块.
更新:
如果要在应用程序中设置此项,请使用setrlimit.请注意,手册页ulimit(3)明确表示它已过时.