.\" 2007-07-10, mtk, Added an example program.
.\" 2008-11-18, mtk, document MAP_STACK
.\"
-.TH MMAP 2 2013-04-17 "Linux" "Linux Programmer's Manual"
+.TH MMAP 2 2015-01-22 "Linux" "Linux Programmer's Manual"
.SH NAME
mmap, munmap \- map or unmap files or devices into memory
.SH SYNOPSIS
.TP
.B EACCES
A file descriptor refers to a non-regular file.
-Or
-.B MAP_PRIVATE
-was requested, but
+Or a file mapping was requested, but
.I fd
is not open for reading.
Or
.\" A file could not be mapped for reading.
.TP
.B ENODEV
-The underlying file system of the specified file does not support
+The underlying filesystem of the specified file does not support
memory mapping.
.TP
.B ENOMEM
.I prot
argument asks for
.B PROT_EXEC
-but the mapped area belongs to a file on a file system that
+but the mapped area belongs to a file on a filesystem that
was mounted no-exec.
.\" (Since 2.4.25 / 2.6.0.)
.TP
+.B EPERM
+The operation was prevented by a file seal; see
+.BR fcntl (2).
+.TP
.B ETXTBSY
.B MAP_DENYWRITE
was set but the object specified by
.SH AVAILABILITY
On POSIX systems on which
.BR mmap (),
-.BR msync (2)
+.BR msync (2),
and
.BR munmap ()
are available,
.\" -1: unavailable, 0: ask using sysconf().
.\" glibc defines it to 1.
.SH NOTES
-This page describes the interface provided by the glibc
-.BR mmap ()
-wrapper function.
-Originally, this function invoked a system call of the same name.
-Since kernel 2.4, that system call has been superseded by
-.BR mmap2 (2),
-and nowadays
-.\" Since around glibc 2.1/2.2, depending on the platform.
-the glibc
-.BR mmap ()
-wrapper function invokes
-.BR mmap2 (2)
-with a suitably adjusted value for
-.IR offset .
-
On some hardware architectures (e.g., i386),
.B PROT_WRITE
implies
.BR _GNU_SOURCE
also suffices,
and requiring that macro specifically would have been more logical,
-since these flags are all Linux specific.)
+since these flags are all Linux-specific.)
The relevant flags are:
.BR MAP_32BIT ,
.BR MAP_ANONYMOUS
.BR MAP_POPULATE ,
and
.BR MAP_STACK .
+.\"
+.SS C library/kernel ABI differences
+This page describes the interface provided by the glibc
+.BR mmap ()
+wrapper function.
+Originally, this function invoked a system call of the same name.
+Since kernel 2.4, that system call has been superseded by
+.BR mmap2 (2),
+and nowadays
+.\" Since around glibc 2.1/2.2, depending on the platform.
+the glibc
+.BR mmap ()
+wrapper function invokes
+.BR mmap2 (2)
+with a suitably adjusted value for
+.IR offset .
.SH BUGS
On Linux there are no guarantees like those suggested above under
.BR MAP_NORESERVE .
pages of the file and then uses
.BR write (2)
to output the desired bytes.
+.SS Program source
.nf
-
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
.fi
.SH SEE ALSO
.BR getpagesize (2),
+.BR memfd_create (2),
.BR mincore (2),
.BR mlock (2),
.BR mmap2 (2),
.\"
.\" Repeat after me: private read-only mappings are 100% equivalent to
.\" shared read-only mappings. No ifs, buts, or maybes. -- Linus
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.