diff options
Diffstat (limited to 'man2/msync.2')
-rw-r--r-- | man2/msync.2 | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/man2/msync.2 b/man2/msync.2 deleted file mode 100644 index 64dffbd..0000000 --- a/man2/msync.2 +++ /dev/null @@ -1,140 +0,0 @@ -.\" Copyright (C) 1996 Andries Brouwer (aeb@cwi.nl) -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.TH msync 2 2023-10-31 "Linux man-pages 6.7" -.SH NAME -msync \- synchronize a file with a memory map -.SH LIBRARY -Standard C library -.RI ( libc ", " \-lc ) -.SH SYNOPSIS -.nf -.B #include <sys/mman.h> -.P -.BI "int msync(void " addr [. length "], size_t " length ", int " flags ); -.fi -.SH DESCRIPTION -.BR msync () -flushes changes made to the in-core copy of a file that was mapped -into memory using -.BR mmap (2) -back to the filesystem. -Without use of this call, -there is no guarantee that changes are written back before -.BR munmap (2) -is called. -To be more precise, the part of the file that -corresponds to the memory area starting at -.I addr -and having length -.I length -is updated. -.P -The -.I flags -argument should specify exactly one of -.B MS_ASYNC -and -.BR MS_SYNC , -and may additionally include the -.B MS_INVALIDATE -bit. -These bits have the following meanings: -.TP -.B MS_ASYNC -Specifies that an update be scheduled, but the call returns immediately. -.TP -.B MS_SYNC -Requests an update and waits for it to complete. -.TP -.B MS_INVALIDATE -.\" Since Linux 2.4, this seems to be a no-op (other than the -.\" EBUSY check for VM_LOCKED). -Asks to invalidate other mappings of the same file -(so that they can be updated with the fresh values just written). -.SH RETURN VALUE -On success, zero is returned. -On error, \-1 is returned, and -.I errno -is set to indicate the error. -.SH ERRORS -.TP -.B EBUSY -.B MS_INVALIDATE -was specified in -.IR flags , -and a memory lock exists for the specified address range. -.TP -.B EINVAL -.I addr -is not a multiple of PAGESIZE; or any bit other than -.BR MS_ASYNC " | " MS_INVALIDATE " | " MS_SYNC -is set in -.IR flags ; -or both -.B MS_SYNC -and -.B MS_ASYNC -are set in -.IR flags . -.TP -.B ENOMEM -The indicated memory (or part of it) was not mapped. -.SH VERSIONS -According to POSIX, either -.B MS_SYNC -or -.B 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 -.B 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 -.B MS_SYNC -or -.B MS_ASYNC -in -.IR flags . -.SH STANDARDS -POSIX.1-2008. -.SH HISTORY -POSIX.1-2001. -.P -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 -.BR ENOMEM . -.P -On POSIX systems on which -.BR msync () -is available, both -.B _POSIX_MAPPED_FILES -and -.B _POSIX_SYNCHRONIZED_IO -are defined in -.I <unistd.h> -to a value greater than 0. -(See also -.BR sysconf (3).) -.\" 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 SEE ALSO -.BR mmap (2) -.P -B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128\[en]129 and 389\[en]391. |