有没有办法找出我的系统使用C的RAM总量? 我在Ubuntu 12.04上。我需要在C中编写一个理想情况下应该在运行时查询RAM总量的应用程序。
答案 0 :(得分:5)
在Linux上,这可以从/proc/meminfo
获得。例如:
MemTotal: 16469432 kB MemFree: 792136 kB MemAvailable: 15201832 kB Buffers: 5806244 kB Cached: 8637760 kB ...
只需将其作为普通文件打开,然后解析内容。
答案 1 :(得分:3)
最干净的方法是使用procfs(参见Dietrich的回答)。
但是,有关硬件(RAM,CPU数量,速度,型号,misc其他设备)的更多详细信息,您可以从dmesg中提取大量信息:
dmesg | grep Memory
如果您有权限,可以使用C stdlib popen()从dmesg读取,并解析各种信息。我已经将它用于像Spong这样的监控系统,以尽可能多地提取有关节点的信息。您甚至可以实时监控它以获取您发出的硬件/设备命令的反馈(dmesg | tail -f)。
请记住,dmesg始终不可用,具体取决于priv。
答案 2 :(得分:1)
@abc本文档可以为您提供帮助。 http://valgrind.org/docs/manual/ms-manual.html
答案 3 :(得分:1)
只有获得物理RAM的方法是使用BIOS调用,如果您不希望操作系统为您执行此操作。 您需要的所有信息http://wiki.osdev.org/index.php?title=How_Do_I_Determine_The_Amount_Of_RAM&redirect=no
答案 4 :(得分:0)
您可以使用 top 命令显示cpu使用内存使用情况等