OSDN Git Service

LDP: Update original to LDP v3.79
[linuxjm/LDP_man-pages.git] / original / man2 / mmap.2
index a78998e..dbda22b 100644 (file)
@@ -37,7 +37,7 @@
 .\" 2007-07-10, mtk, Added an example program.
 .\" 2008-11-18, mtk, document MAP_STACK
 .\"
-.TH MMAP 2 2013-02-25 "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
@@ -142,7 +142,7 @@ In addition, zero or more of the following values can be ORed in
 .TP
 .BR MAP_32BIT " (since Linux 2.4.20, 2.6)"
 Put the mapping into the first 2 Gigabytes of the process address space.
-This flag is only supported on x86-64, for 64-bit programs.
+This flag is supported only on x86-64, for 64-bit programs.
 It was added to allow thread stacks to be allocated somewhere
 in the first 2GB of memory,
 so as to improve context-switch performance on some early
@@ -181,7 +181,7 @@ The use of
 .B MAP_ANONYMOUS
 in conjunction with
 .B MAP_SHARED
-is only supported on Linux since kernel 2.4.
+is supported on Linux only since kernel 2.4.
 .TP
 .B MAP_DENYWRITE
 This flag is ignored.
@@ -244,7 +244,7 @@ This flag is ignored in older kernels.
 Only meaningful in conjunction with
 .BR MAP_POPULATE .
 Don't perform read-ahead:
-only create page tables entries for pages
+create page tables entries only for pages
 that are already present in RAM.
 Since Linux 2.6.23, this flag causes
 .BR MAP_POPULATE
@@ -267,7 +267,7 @@ See also the discussion of the file
 .I /proc/sys/vm/overcommit_memory
 in
 .BR proc (5).
-In kernels before 2.6, this flag only had effect for
+In kernels before 2.6, this flag had effect only for
 private writable mappings.
 .TP
 .BR MAP_POPULATE " (since Linux 2.5.46)"
@@ -275,7 +275,7 @@ Populate (prefault) page tables for a mapping.
 For a file mapping, this causes read-ahead on the file.
 Later accesses to the mapping will not be blocked by page faults.
 .BR MAP_POPULATE
-is only supported for private mappings since Linux 2.6.23.
+is supported for private mappings only since Linux 2.6.23.
 .TP
 .BR MAP_STACK " (since Linux 2.6.27)"
 Allocate the mapping at an address suitable for a process
@@ -293,7 +293,7 @@ support can later be transparently implemented for glibc.
 .BR MAP_UNINITIALIZED " (since Linux 2.6.33)"
 Don't clear anonymous pages.
 This flag is intended to improve performance on embedded devices.
-This flag is only honored if the kernel was configured with the
+This flag is honored only if the kernel was configured with the
 .B CONFIG_MMAP_ALLOW_UNINITIALIZED
 option.
 Because of the security implications,
@@ -393,9 +393,7 @@ is set (probably to
 .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
@@ -451,7 +449,7 @@ The system limit on the total number of open files has been reached.
 .\" 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
@@ -463,10 +461,14 @@ The
 .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
@@ -501,7 +503,7 @@ SVr4, 4.4BSD, POSIX.1-2001.
 .SH AVAILABILITY
 On POSIX systems on which
 .BR mmap (),
-.BR msync (2)
+.BR msync (2),
 and
 .BR munmap ()
 are available,
@@ -513,21 +515,6 @@ is defined in \fI<unistd.h>\fP to a value greater than 0.
 .\" -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
@@ -567,7 +554,7 @@ is defined.
 .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
@@ -584,6 +571,22 @@ The relevant flags are:
 .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 .
@@ -592,7 +595,7 @@ at any moment when the system runs out of memory.
 
 In kernels before 2.6.7, the
 .B MAP_POPULATE
-flag only has effect if
+flag has effect only if
 .I prot
 is specified as
 .BR PROT_NONE .
@@ -639,8 +642,8 @@ The program creates a memory mapping of the required
 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>
@@ -711,6 +714,7 @@ main(int argc, char *argv[])
 .fi
 .SH SEE ALSO
 .BR getpagesize (2),
+.BR memfd_create (2),
 .BR mincore (2),
 .BR mlock (2),
 .BR mmap2 (2),
@@ -723,7 +727,23 @@ main(int argc, char *argv[])
 .BR shm_open (3),
 .BR shm_overview (7)
 
+The descriptions of the following files in
+.BR proc (5):
+.IR /proc/[pid]/maps ,
+.IR /proc/[pid]/map_files ,
+and
+.IR /proc/[pid]/smaps .
+
 B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
 .\"
 .\" 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/.