C++ 获取Linux的可用内存

该代码段定义了一个函数longget_memory_free(),用于读取Linux系统的/proc/meminfo文件,获取内存总量、可用内存和空闲内存,并以MB为单位输出。函数首先打开文件,然后使用fscanf解析文件内容,提取MemTotal、MemAvailable和MemFree的值,最后关闭文件并返回内存空闲量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

long get_memory_free()
{
    FILE*file=fopen("/proc/meminfo","r");
    if(file == nullptr){
        fprintf(stderr,"cannot open /proc/meminfo\n");
        return -1;
    }
    char str1[20];
    char str2[20];
    char str3[20];
    long mem_total      =0;
    long mem_available  =0;
    long mem_free       =0;
    fscanf(file, "MemTotal: %s kB\n", str1);
    mem_total = atol(str1) / 1000;
    fscanf(file,"MemAvailable: %s kB\n",str2);
    mem_available = atol(str2) / 1000;
    fscanf(file, "MemFree: %s kB\n", str3);
    mem_free = atol(str3) / 1000;
    fclose(file);
    fprintf(stderr, "Memory total: %ld MB\tMemory available: %ld MB\tMemory free: %ld MB\n", mem_total, mem_available, mem_free);
    return mem_free;
}

参考资料:

https://www.cnblogs.com/aimhabo/p/10776456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值