linux 库函数获取buf和cache大小

问题遇到的现象和发生背景

[2022-03-16 16:28:30.497]cat /proc/meminfo
[2022-03-16 16:28:30.717]MemTotal: 1157152 kB
[2022-03-16 16:28:30.717]MemFree: 267992 kB
[2022-03-16 16:28:30.717]MemAvailable: 336876 kB
[2022-03-16 16:28:30.717]Buffers: 4 kB
[2022-03-16 16:28:30.717]Cached: 536092 kB

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法

sysinfo 函数只能获取到 MemTotal MemFree Buffers 获取不到 Cached。

我想要达到的结果

有没有码友知道,能不能通过库函数获取到cached的大小。

关于这方面有可推荐的书籍有没有。

#include <stdio.h>
#include <string.h>

#define N 80

/* Returns the cached memory size in bytes. */
size_t get_cached_memory_size()
{
    char line[N], name[32];
    size_t size = 0;
    FILE *fp = fopen("/proc/meminfo", "r");
    while (fgets(line, N, fp))
    {
        if (sscanf(line, "%s%ld", name, &size) == 2 && strcmp(name, "Cached:") == 0)
        {
            size *= 1024;
            break;
        }
    }
    fclose(fp);
    return 0;
}

int main()
{
    printf("Cached: %ld Bytes\n", get_cached_memory_size());
    return 0;
}

同问啊同问

https://blog.csdn.net/zyhse/article/details/108324378

文件读取的方式获取