Linux下的内存监控小程序

Linux下的内存监控小程序

#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;
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注