Section: Linux Programmer's Manual (2)Updated: 2008-04-22Local indexUp
mmap2 - map files or devices into memory
#include <sys/mman.h>void *mmap2(void *addr, size_t length, int prot, int flags, int fd, off_t pgoffset);
system call operates in exactly the same way as
except that the final argument specifies the offset into the
file in 4096-byte units (instead of bytes, as is done by
This enables applications that use a 32-bit
to map large files (up to 2^44 bytes).
returns a pointer to the mapped area.
On error -1 is returned and
is set appropriately.
Problem with getting the data from userspace.
(Various platforms where the page size is not 4096 bytes.)
offset * 4096
is not a multiple of the system page size.
can return any of the same errors as
is available since Linux 2.3.31.
This system call is Linux-specific.
Nowadays, the glibc
wrapper function invokes this system call rather than the
On ia64, the unit for
is actually the system page size, rather than 4096 bytes.