get_phys_pages函数用法详解
get_phys_pages函数简介
- 头文件包含
- 函数定义
#include <sys/sysinfo.h>
long get_phys_pages(void);
long get_avphys_pages(void);
get_phys_pages函数常见使用错误
- 编译错误
warning: implicit declaration of function ‘get_phys_pages’ [-Wimplicit-function-declaration]
解决办法:包含头文件
get_phys_pages函数详细描述
函数get_phys_pages ()返回系统上可用内存的物理页面总数。
函数get_avphys_pages ()返回系统上当前可用的物理内存页数。
get_phys_pages函数返回值
如果成功,这些函数将返回一个非负值,如描述中所示。如果失败,则返回-1并设置errno来指示错误的原因。
get_phys_pages函数错误码
- ENOSYS 系统无法提供所需的信息(可能是因为没有挂载/proc文件系统)。
get_phys_pages函数其他说明
这些函数通过扫描/proc/meminfo 的MemTotal和MemFree字段获得所需信息
以下sysconf (3)调用提供了一种可移植的方法来获取与本页描述的函数相同的信息。
total_pages = sysconf(_SC_PHYS_PAGES); /* total pages */
avl_pages = sysconf(_SC_AVPHYS_PAGES); /* available pages */
get_phys_pages函数使用举例
以下示例显示了如何使用get_phys_pages ()和get_avphys_pages ()。
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysinfo.h>
int
main(int argc, char *argv[])
{
printf("This system has %ld pages of physical memory and "
"%ld pages of physical memory available.\en",
get_phys_pages(), get_avphys_pages());
exit(EXIT_SUCCESS);
}
评论区