MMAP2(2) Linux Programmer's Manual MMAP2(2)

mmap2 - map files or devices into memory

#include <sys/mman.h>

#include <syscall.h>

#include <errno.h>

_syscall6(void *, mmap2, void *, start, size_t, length,
          int, prot, int, flags, int, fd, off_t, pgoffset)

          /* Using syscall(2) may be preferable; see intro(2) */

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

The mmap2() system call operates in exactly the same way as mmap(2), except that the final argument specifies the offset into the file in units of the system page size (instead of bytes). This enables applications that use a 32-bit off_t to map larger files (typically up to 2^44 bytes).

On success, mmap2() returns a pointer to the mapped area. On error -1 is returned and errno is set appropriately.

Problem with getting the data from userspace.

mmap2() is available since Linux 2.3.31. It is Linux specific, and should be avoided in portable applications. On 32-bit systems, mmap2() is used to implement the mmap64() function that is part of the LFS (Large File Summit).

This system call is Linux specific.

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

2002-01-31 Linux 2.3.31

Different Versions of this Page: