Osc*_*car 4 c unix int memory-management system-calls
为什么系统调用getpagesize()返回一个int而不是一个unsigned int或一个size_t?
原型和简短说明如下:
GETPAGESIZE(2)
NAME
getpagesize - get memory page size
SYNOPSIS
#include <unistd.h>
int getpagesize(void);
Run Code Online (Sandbox Code Playgroud)
int它发明时可能就足够了.但它不再是一个问题,因为
getpagesize()自2001年以来已从POSIX标准中删除并已被取代sysconf().你应该用sysconf(_SC_PAGESIZE).
getpagesize() 返回int是删除它的主要原因之一:
为getpagesize
getpagesize()函数返回当前页面大小.它等同于sysconf(_SC_PAGE_SIZE)和sysconf(_SC_PAGESIZE).返回int的此接口可能在将来表示适当的值时会出现问题.此外,在支持可变大小页面的系统上未指定此接口的行为.在可变页面大小的系统上,页面可能非常大(理论上,最大内存大小).这允许对具有共同页面属性的大段内存进行非常有效的地址转换.关于此的注释已添加到Application Usage,并且标记为Legacy的接口,建议应用程序应使用sysconf()接口.
(强调我的).