MMAP2 - Linux手册页

时间:2019-08-20 17:59:00  来源:igfitidea点击:

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

名称

mmap2-将文件或设备映射到内存

语法

#include <sys/mman.h>

void *mmap2(void *addr, size_t length, int prot,
             int flags, int fd, off_t pgoffset);

说明

这可能不是您感兴趣的系统调用。相反,请参见mmap(2),该文件描述了调用此系统调用的glibc包装函数。

mmap2()系统调用提供了与mmap(2)相同的接口,除了最后一个参数以4096字节为单位指定文件的偏移量(而不是象mmap(2)那样以字节为单位)。这使使用32位off_t的应用程序可以映射大文件(最大2 ^ 44字节)。

返回值

成功时,mmap2()返回一个指向映射区域的指针。错误时,返回-1并正确设置errno。

错误说明

EFAULT
从用户空间获取数据的问题。
EINVAL
(页面大小不是4096字节的各种平台。)offset * 4096不是系统页面大小的倍数。

mmap2()也可以返回mmap(2)中描述的任何错误。

版本

从Linux 2.3.31开始,mmap2()可用。

遵循规范

此系统调用是特定于Linux的。

备注

在存在该系统调用的体系结构上,glibc mmap()包装函数将调用此系统调用,而不是mmap(2)系统调用。

此系统调用在x86-64上不存在。

在ia64上,偏移量的单位实际上是系统页面大小,而不是4096字节。

另外参见

getpagesize(2),mmap(2),mremap(2),msync(2),shm_open(3)

出版信息

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