獲取內存使用率(Linux C)
阿新 • • 發佈:2018-07-11
sscanf fopen fgets roc 獲取 ota scan 1.0 def
#define SYS_MEM_NAME_LEN 20
#define SYS_MEM_BUFF_LEN 256
#define SYS_100_PERSENT 100
int
get_sysMemUsage()
{
FILE *fd;
char buff[SYS_MEM_BUFF_LEN];
double mem_used_rate;
char name01[SYS_MEM_NAME_LEN];
unsigned long mem_total;
char name02[SYS_MEM_NAME_LEN];
char name11[SYS_MEM_NAME_LEN];
unsigned long mem_free;
char name12[SYS_MEM_NAME_LEN];
fd = fopen ("/proc/meminfo", "r");
fgets (buff, sizeof(buff), fd);
sscanf (buff, "%s %lu %s\n", name01, &mem_total, name02);
fgets (buff, sizeof(buff), fd);
sscanf (buff, "%s %lu %s\n", name11, &mem_free, name12);
mem_used_rate = (1.0 - (double)mem_free/(double)mem_total) * SYS_100_PERSENT;
fclose(fd);
return mem_used_rate;
}
獲取內存使用率(Linux C)