NAME
msync
—
synchronize a mapped region
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include
<sys/mman.h>
int
msync
(void *addr,
size_t len, int flags);
DESCRIPTION
The
msync
()
system call writes modified whole pages back to the filesystem and updates
the file modification time. Only those pages containing
addr and len-1 succeeding
locations will be examined.
The flags argument may be specified as follows:
MS_ASYNC Return immediately MS_SYNC Perform synchronous writes MS_INVALIDATE Invalidate all cached data
The MS_ASYNC flag is not permitted to be combined with other flags.
RETURN VALUES
If any errors occur, -1 is returned and errno is set to indicate the error. Otherwise, a 0 value is returned.
ERRORS
msync
() will fail if:
- [
EBUSY
] - Some of the specified addresses are locked and MS_INVALIDATE is specified.
- [
EINVAL
] - addr is not a multiple of the hardware page size.
- [
EINVAL
] - len is too large, or less than 1.
- [
EINVAL
] - flags is invalid (e.g., it combines MS_ASYNC with another flag, which is not permitted).
- [
EIO
] - An I/O error occurs while writing to the file system.
- [
ENOMEM
] - The specified address range is outside of the address range of the process or includes an unmapped page.
LEGACY SYNOPSIS
#include
<sys/types.h>
#include
<sys/mman.h>
The include file
<sys/types.h>
is
necessary.
SEE ALSO
HISTORY
The msync
() function first appeared in
4.4BSD.