在Linux环境下,使用C语言获取系统内存信息可以通过读取/proc/meminfo
文件来实现。这个文件包含了系统的内存使用情况,如总内存、可用内存、缓存等。
以下是一个简单的C语言示例,展示如何读取并解析/proc/meminfo
文件来获取系统内存信息:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void get_memory_info() {
FILE *meminfo = fopen("/proc/meminfo", "r");
if (meminfo == NULL) {
perror("Failed to open /proc/meminfo");
return;
}
char line[256];
while (fgets(line, sizeof(line), meminfo)) {
if (strncmp(line, "MemTotal:", 9) == 0) {
unsigned long total_memory;
sscanf(line + 9, "%lu", &total_memory);
printf("Total Memory: %lu kB
", total_memory);
} else if (strncmp(line, "MemAvailable:", 13) == 0) {
unsigned long available_memory;
sscanf(line + 13, "%lu", &available_memory);
printf("Available Memory: %lu kB
", available_memory);
}
// 可以继续解析其他内存信息,如MemFree, Buffers, Cached等
}
fclose(meminfo);
}
int main() {
get_memory_info();
return 0;
}
fopen
函数打开/proc/meminfo
文件。fgets
函数逐行读取文件内容。strncmp
函数检查每行的前缀,确定是否是我们感兴趣的内存信息行(如MemTotal:
和MemAvailable:
)。sscanf
函数从行中提取具体的数值。/proc/meminfo
文件是动态生成的,反映了当前系统的内存使用情况。/proc/meminfo
文件通常不需要特殊权限。/proc/meminfo
文件格式可能会随着Linux内核版本的变化而变化,因此在解析时需要注意兼容性。通过这种方式,你可以轻松地在Linux环境下使用C语言获取系统的内存信息。
领取专属 10元无门槛券
手把手带您无忧上云