如何通过C代码确定内存大小

时间:2017-07-22 20:55:53

标签: c

是否可以通过C代码获取内存大小(即RAM)?例如,我们可以使用system("mkdir -p /path/")生成目录,其中mkdir实际上是一个unix命令。假设我在Linux系统上,我可以做类似的事情来获取内存大小吗?

谢谢

2 个答案:

答案 0 :(得分:4)

对于Linux系统,有user access token

sysinfo()

检查#include <sys/sysinfo.h> #include <stdio.h> int main(int argc, char **argv) { struct sysinfo info; sysinfo(&info); // use info.totalram, info.freeram, etc printf("%lu bytes\n", info.totalram); return 0; } 上的手册页以了解结构的所有详细信息。

答案 1 :(得分:0)

免费使用

$ free
              total        used        free      shared  buff/cache   available
Mem:        8093896     3657260     2163392       68360     2273244     4109636
Swap:      27733868     1045556    26688312

在一个程序中:

/* mem.c */
int main()
{
  system("free");
}

作为概念证明:

$ gcc mem.c
$ ./a.out
              total        used        free      shared  buff/cache   available
Mem:        8093896     3692808     2122384       68360     2278704     4074036
Swap:      27733868     1045544    26688324