OSDN Git Service

LDP: Update original to LDP v3.68
[linuxjm/LDP_man-pages.git] / original / man2 / msync.2
index 2e0e720..6c98f46 100644 (file)
@@ -22,7 +22,7 @@
 .\" the source, must acknowledge the copyright and authors of this work.
 .\" %%%LICENSE_END
 .\"
-.TH MSYNC 2 2008-04-22 "Linux" "Linux Programmer's Manual"
+.TH MSYNC 2 2014-04-20 "Linux" "Linux Programmer's Manual"
 .SH NAME
 msync \- synchronize a file with a memory map
 .SH SYNOPSIS
@@ -34,7 +34,7 @@ msync \- synchronize a file with a memory map
 flushes changes made to the in-core copy of a file that was mapped
 into memory using
 .BR mmap (2)
-back to disk.
+back to the filesystem.
 Without use of this call
 there is no guarantee that changes are written back before
 .BR munmap (2)
@@ -100,7 +100,7 @@ This call was introduced in Linux 1.3.21, and then used
 .B EFAULT
 instead of
 .BR ENOMEM .
-In Linux 2.4.19 this was changed to the POSIX value
+In Linux 2.4.19, this was changed to the POSIX value
 .BR ENOMEM .
 .SH AVAILABILITY
 On POSIX systems on which
@@ -117,15 +117,43 @@ to a value greater than 0.
 .\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
 .\" -1: unavailable, 0: ask using sysconf().
 .\" glibc defines them to 1.
+.SH NOTES
+According to POSIX, either
+.BR MS_SYNC
+or
+.BR MS_ASYNC
+must be specified in
+.IR flags ,
+and indeed failure to include one of these flags will cause
+.BR msync ()
+to fail on some systems.
+However, Linux permits a call to
+.BR msync ()
+that specifies neither of these flags,
+with semantics that are (currently) equivalent to specifying
+.BR MS_ASYNC .
+(Since Linux 2.6.19,
+.\" commit 204ec841fbea3e5138168edbc3a76d46747cc987
+.BR MS_ASYNC
+is in fact a no-op, since the kernel properly tracks dirty
+pages and flushes them to storage as necessary.)
+Notwithstanding the Linux behavior,
+portable, future-proof applications should ensure that they specify either
+.BR MS_SYNC
+or
+.BR MS_ASYNC
+in
+.IR flags .
 .SH SEE ALSO
 .BR mmap (2)
 
 B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
 .SH COLOPHON
-This page is part of release 3.64 of the Linux
+This page is part of release 3.68 of the Linux
 .I man-pages
 project.
 A description of the project,
-and information about reporting bugs,
+information about reporting bugs,
+and the latest version of this page,
 can be found at
 \%http://www.kernel.org/doc/man\-pages/.