zoukankan      html  css  js  c++  java
  • ubuntu下C/C++获取剩余内存

    #include <stdio.h>
    #include <unistd.h>
    long get_memory_usage()
    {
        long page_size = sysconf (_SC_PAGESIZE);
        long num_pages = sysconf (_SC_PHYS_PAGES);
        long mem = (num_pages/1024) * (page_size/1024);
        long long free_pages = sysconf (_SC_AVPHYS_PAGES);
        long long free_mem = (free_pages/1024) * (page_size/1024);
        fprintf(stderr,"Memory %lld MB\%lld MB.
    ", mem, free_mem);
        return (long)(free_mem);
    }

    获取结果与System Monitor中的不一致,不过内存管够的情况下一般在150~200MB之间波动,重启阈值设在100MB可以凑合用

    另一方法

    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <string.h>
    long get_memory_usage()
    {
        FILE*file=fopen("/proc/meminfo","r");
        if(file == NULL){
            fprintf(stderr,"cannot open /proc/meminfo
    ");
            return -1;
        }
        char keyword[20];
        char valuech[20];
        long mem        =0;
        long free_mem   =0;
        fscanf(file,"MemTotal: %s kB
    ",keyword);
        mem=atol(keyword)/1000;
        fscanf(file,"MemFree: %s kB
    ",valuech);
        fscanf(file,"MemAvailable: %s kB
    ",valuech);
        free_mem=atol(valuech)/1000;
        fclose(file);
        fprintf(stderr,"Memory %ld MB\%ld MB.
    ", mem, free_mem);
        return (long)(free_mem);
    }

    与在GUI中可见的剩余内存相同,推荐作为参考方法

  • 相关阅读:
    django-rest-framework 注意事项
    Python virtualenv 使用总结篇
    python flask 基础入门
    python property
    python Numpy
    c语言学习的第四天2
    c语言学习第四天数据类型1
    学习c编程的第三天
    学习c编程的第二天
    HTTP首部及各状态码
  • 原文地址:https://www.cnblogs.com/aimhabo/p/10776456.html
Copyright © 2011-2022 走看看