/ proc / mem中有很多字段:我知道我不能只使用“MemFree”,因为实际上缓存了大量内存.所以问题是,我如何计算可用内存量?
假设:
>系统配置为没有交换空间.
>我对“可用内存”的定义是当malloc达到零时malloc开始失败.
最佳答案
使用源卢克!
@H_403_19@free.c – ‘free’命令行实用程序的源代码
sysinfo.c – 有关如何读入/ proc / meminfo的示例,请参阅方法meminfo().
虽然阅读/ proc很简单,能够预测malloc是否会失败并不容易.正如其他人提到的问题,例如过度使用这个问题.标准的方法是尝试分配你需要的东西,如果你不能让它优雅地失败或者用更少的工作.
如果你有足够的时间,这一系列文章值得一读:What every programmer should know about memory.