使用C获取系统的总内存

时间:2011-08-08 15:37:31

标签: c memory

我试图通过C获得全部和可能的系统空闲内存。它应该是系统无关的。

要发起讨论,我可以建议使用getpagesize()方法获取页面大小。任何人都可以提供有关内存页面数量的帮助。

4 个答案:

答案 0 :(得分:5)

没有一种独立于系统的方法,因为它显然取决于系统!

答案 1 :(得分:3)

无法以独立于系统的方式执行此操作。该语言没有内存页面的概念,也没有存储的位置和方式。

答案 2 :(得分:2)

不仅内存处理是系统相关的,正如其他人已经说过的那样,在许多情况下,“总内存量”根本不存在作为一个明确的概念。有

  • 物理内存,但通常不是硬约束,因为它由
  • 支持
  • 磁盘上的分页内存,但由于
  • ,它依赖于哪种配置,而且通常也不是硬约束
  • 虚拟内存,它只描述了地址可以拥有的不同“数字”,并且可以由操作系统自由归属,即使它不能由上述两者支持。

答案 3 :(得分:1)

如果“独立于系统”意味着操作系统独立,那么我真的怀疑你会发现任何一个命令都适用于所有平台。

如果您需要特定于系统:

  • 在Windows上使用GlobalStatusMemoryEx
  • 在Linux上,我可能会选择快速而肮脏的方法(解析/ proc / meminfo)

对于Linux,您还可以尝试sysconf

中的unistd.h功能