// // Created by Iain on 2021/7/17. // #include #include #define BUFFER_SIZE_MEMINFO 128 #define SYSTEM_MEM_INFO_PATH "/proc/meminfo" void updateSystemMem(unsigned int *all, unsigned int *fre, float *useage) { char buf[BUFFER_SIZE_MEMINFO]; /*缓冲区*/ FILE *fp; /*文件指针*/ if ((fp = fopen(SYSTEM_MEM_INFO_PATH, "r")) == NULL) { perror("fail to read /proc/meminfo"); return; } fgets(buf, BUFFER_SIZE_MEMINFO, fp); sscanf(buf, "MemTotal: %u kB", all); fgets(buf, BUFFER_SIZE_MEMINFO, fp); sscanf(buf, "MemFree %u kB", fre); *useage = 1 - (float) *fre / *all; }