GETPAGESIZE - Linux手册页

时间:2019-08-20 17:58:49  来源:igfitidea点击:

Linux程序员手册 第2部分
更新日期: 2017-09-15

名称

getpagesize-获取内存页面大小

语法

#包括

int getpagesize(void);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

getpagesize():

Since glibc 2.19:
_DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
From glibc 2.12 to 2.19:
_BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L)
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE>= 500

说明

函数getpagesize()返回内存页中的字节数,其中" page"是固定长度的块,是mmap(2)执行的内存分配和文件映射的单位。

遵循规范

SVr4、4.4BSD,SUSv2。在SUSv2中,getpagesize()调用标记为LEGACY,而在POSIX.1-2001中,该标记已被删除。 HP-UX没有此调用。

备注

可移植应用程序应采用sysconf(_SC_PAGESIZE)而不是getpagesize():

#include <unistd.h>
long sz = sysconf(_SC_PAGESIZE);

(大多数系统允许_SC_PAGESIZE的同义词_SC_PAGE_SIZE。)

getpagesize()是否以Linux系统调用的形式出现取决于体系结构。如果是,它将返回内核符号PAGE_SIZE,其值取决于体系结构和机器模型。通常,为了使每个体系结构具有单个二进制分发,人们使用依赖于体系结构但不依赖于机器模型的二进制。这意味着用户程序不应在编译时从头文件中找到PAGE_SIZE,而应至少对存在此依赖性的那些体系结构(如sun4)使用实际的系统调用。在这里glibc 2.0失败了,因为它的getpagesize()返回了一个静态派生的值,并且不使用系统调用。在glibc 2.1中一切正常。

另外参见

mmap(2),sysconf(3)

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/