linux下获取内存状态

通过 proc 文件系统获取

在 proc下面有 proc/meminfo 该文件会提供 对应对应此时此刻的内存的使用的情况
系统很多上层接口的数据来源也是出自于此。

 cat /proc/meminfo 
MemTotal:       131921988 kB
MemFree:        90476752 kB
Buffers:          765764 kB
Cached:         13274276 kB
SwapCached:       131872 kB
Active:         27448120 kB
Inactive:        9399016 kB
Active(anon):   21696856 kB
Inactive(anon):  1133872 kB
....

通过sysinfo

Linux中,sysinfo主要是用来获取系统相关信息。                 

Linux中,sysinfo是用来获取系统相关信息的结构体。

函数声明和原型:

#include <sys/sysinfo.h>

int sysinfo(struct sysinfo *info);

主要成员。

struct sysinfo {                  
long uptime;            
/* 启动到现在经过的时间 */                  
unsigned long loads[3];  
/* 1, 5, and 15 minute load averages */                  
unsigned long totalram;  /* 总的可用的内存大小 */
unsigned long freeram;   /* 还未被使用的内存大小 */
unsigned long sharedram; /* 共享的存储器的大小 */
unsigned long bufferram; /* 缓冲区大小 */                  
unsigned long totalswap; /* 交换区大小 */                  
unsigned long freeswap;  /* 还可用的交换区大小 */
unsigned short procs;    /* 当前进程数目 */
char _f[22];         /* 64字节的补丁结构 */
....

可以利用该接口 对应的内存状况。

参考例子:

 size_t getFreeMemorySize()    
 {                      
   struct sysinfo memInfo;
   sysinfo(&memInfo);                     
   return memInfo.freeram/1024/1024;                                                                                                                                                                           
 }
发布了8 篇原创文章 · 获赞 0 · 访问量 2874

猜你喜欢

转载自blog.csdn.net/skyxiaoyan1/article/details/84583013
今日推荐