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中可见的剩余内存相同,推荐作为参考方法

  • 相关阅读:
    纯CSS实现气泡聊天框的方法
    css实现箭头矩形流程效果
    上传文件控件的样式美化
    Input placeholder 字体颜色更改
    如何为全局所有input组件添加边框发光效果
    JavaWeb:Filter(二)
    JavaWeb:Filter
    JavaWeb:EL & JSTL
    JavaWeb:标签(二)
    JavaWeb:简单的标签
  • 原文地址:https://www.cnblogs.com/aimhabo/p/10776456.html
Copyright © 2011-2022 走看看