synchronize a mapped region
*addr, size_t len,
system call writes all pages with shared modifications in the specified
region starting from addr and continuing for
len bytes. addr should be a
multiple of the page size. Any required synchronization of memory caches
will also take place at this time. Filesystem operations on a file that is
mapped for shared modifications are unpredictable except after an
The flags argument is the bitwise OR of zero or more of the following values:
MS_ASYNC Perform asynchronous writes. MS_SYNC Perform synchronous writes. MS_INVALIDATE Invalidate cached data after writing.
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
The following errors may be reported:
MS_INVALIDATEflag was specified and a portion of the specified region was locked with mlock(2).
- The specified flags argument was invalid.
- The addr parameter was not page aligned or addr and size specify a region that would extend beyond the end of the address space.
- Addresses in the specified region are outside the range allowed for the address space of the process, or specify one or more pages which are unmapped.
- An I/O error occurred while writing.
madvise(2), mincore(2), minherit(2), mprotect(2), munmap(2)
msync() function first appeared in
4.4BSD. It was modified to conform to
IEEE Std 1003.1b-1993 (“POSIX.1b”)
Writes are currently done synchronously even if the
MS_ASYNC flag is specified.