我正在尝试访问高内存和高可用内存,以便我可以获取用户内存空间的可用百分比。
当我尝试使用sysinfo API时,我可以获得有关总RAM和总可用RAM的准确信息。即。
if(sysinfo(&l_sys_info) == 0)
{
//Print Different Fields here
return;
}
字段
unsigned long totalhigh; /* Total high memory size */
unsigned long freehigh; /* Available high memory size */
始终为0。
sysinfo的文档位于:http://man7.org/linux/man-pages/man2/sysinfo.2.html
所以我尝试从proc / meminfo文件中读取相同的值,但我找不到字段:
HighTotal :
HighFree :Highmem是所有内存超过~860MB的物理内存 Highmem区域供用户空间程序使用,或 用于pagecache。内核必须使用技巧来访问 这个记忆,使得访问速度比lowmem慢。
proc / meminfo的文档可以在这里找到 http://man7.org/linux/man-pages/man5/proc.5.html
某些内核版本中是否缺少这些字段?或某些口味?
我对Linux内核版本3.0.38和2.6.32-55得到了相同的结果。