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