#include<stdio.h>
#include<unistd.h>
long getNum(char* str,int len)
{
long tmp = 0;
for(int i=0;i<len;i++)
{
tmp =tmp*10+(str[i]==' '?0:(str[i]-'0'));
}
return tmp;
}
int main()
{
while(1){
FILE* file = popen("cat /proc/meminfo","r");
char buf[100];
long total=0;
long avi=0;
char str[7];
fgets (buf , 100 , file);
for(int i=17;i<24;i++)
str[i-17]=buf[i];
total = getNum(str,7);
fgets (buf , 100 , file);
for(int i=17;i<24;i++)
str[i-17]=buf[i];
avi = getNum(str,7);
printf("Total: %ld MB Aviliable: %ld MB Used: %d MB",total/1000,avi/1000,(total-avi)/1000);
puts("");
//fputs (buf , stdout);
sleep(1);
pclose(file);
}
return 0;
}Linux下的内存监控小程序
最新推荐文章于 2023-03-23 11:56:10 发布

本文展示了一个使用C语言编写的简单程序,该程序通过读取/proc/meminfo文件来获取并显示系统的总内存、可用内存及已用内存信息。程序通过循环不断地更新这些信息,并采用自定义函数getNum来解析内存数据。
4万+

被折叠的 条评论
为什么被折叠?



