#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/) * (page_size/);
long long free_pages = sysconf (_SC_AVPHYS_PAGES);
long long free_mem = (free_pages/) * (page_size/);
fprintf(stderr,"Memory %lld MB\\%lld MB.\n", 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\n");
return -1;
}
char keyword[];
char valuech[];
long mem =;
long free_mem =;
fscanf(file,"MemTotal: %s kB\n",keyword);
mem=atol(keyword)/;
fscanf(file,"MemFree: %s kB\n",valuech);
fscanf(file,"MemAvailable: %s kB\n",valuech);
free_mem=atol(valuech)/;
fclose(file);
fprintf(stderr,"Memory %ld MB\\%ld MB.\n", mem, free_mem);
return (long)(free_mem);
}

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

最新文章

  1. django 第二天 制作小demo
  2. 群里分享的react的收藏一下!今日周末,改了个表单验证然后无所事事了!
  3. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)
  4. CSS3学习之分享下transition属性
  5. AnjularJs的增删改查(单页网站)
  6. 关于linux中执行脚本或程序时指定的路径
  7. try catch语句在VC下的处理
  8. how to get file from classpath using jboss7.x.1 --reference
  9. (原)Understand中查看函数调用关系
  10. tomcat7启动闪退
  11. JDBC ---获取数据字段 -- 转成map
  12. 转:甲骨文发布大数据解决方案 含最新版NoSQL数据库
  13. Kafka系列三 java API操作
  14. Android学习之Menu
  15. Spring_day02--AOP概念、原理、操作术语
  16. 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)
  17. angular之自定义管道
  18. 五、mybatis集成使用
  19. python 时间和时间戳的转化
  20. init_connect基本用法

热门文章

  1. js常用正则表达式判断
  2. golang 学习过程中踩的坑
  3. input 在 2 和 3 上的区别
  4. UIView的绘制原理
  5. 跨主机网络overlay和macvlan模型
  6. ArcGIS为面要素生成邻接矩阵
  7. [js]javascript索引
  8. ORA-27300 ORA-27301 ORA-27302 sskgpcreates
  9. Postman接口自动化测试实例用到的完整的SM2前端加密算法代码
  10. iOS 高级去水印,涂鸦去水印