flushes changes made to the in-core copy of a file that was mapped
into memory using
back to disk.
Without use of this call
there is no guarantee that changes are written back before
To be more precise, the part of the file that
corresponds to the memory area starting at
and having length
argument may have the bits
set, but not both
specifies that an update be scheduled, but the call
asks for an update and waits for it to complete.
asks to invalidate other mappings of the same file
(so that they can be updated with the fresh values just written).
On success, zero is returned.
On error, -1 is returned, and
is set appropriately.
was specified in
and a memory lock exists for the specified address range.
is not a multiple of PAGESIZE; or any bit other than
MS_ASYNC | MS_INVALIDATE | MS_SYNC
is set in
are set in
The indicated memory (or part of it) was not mapped.
This call was introduced in Linux 1.3.21, and then used
In Linux 2.4.19 this was changed to the POSIX value
On POSIX systems on which
is available, both
are defined in <unistd.h> to a value greater than 0.
B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
This page is part of release 3.27 of the Linux
A description of the project,
and information about reporting bugs,
can be found at