如何找到我的系统使用C的RAM总量

时间:2014-10-19 06:48:17

标签: c

有没有办法找出我的系统使用C的RAM总量? 我在Ubuntu 12.04上。我需要在C中编写一个理想情况下应该在运行时查询RAM总量的应用程序。

5 个答案:

答案 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使用内存使用情况等