Index of Section 3 Manual Pages
| Interix / SUA | msync.3 | Interix / SUA |
msync(3) msync(3)
msync
NAME
msync() - write pages to storage, synchronizing memory
SYNOPSIS
int msync (void *addr, size_t len, int flags)
DESCRIPTION
Depending on the flags argument, the msync(3) call writes to storage all
modified pages over the range addr to addr+len or invalidates the existing
copies of those pages so that future references to the page come from
permanent storage. The flags argument can be one of:
MS_ASYNC
Write current memory contents asynchronously. After this call, all
reads can read any writes made to the memory region before the call,
and the call returns after scheduling the write.
MS_SYNC
Write current memory contents synchronously. After this call, all
reads can read any writes made to the memory region before the call,
and the call does not return until the write is completed.
MS_INVALIDATE
Invalidate existing page mappings. Essentially this makes the memory
mapping look like the last-saved state of the file, rather than the
other way around. The memory region will contain all writes made to
the mapped portion of the file before the call.
RETURN VALUES
The msync(3) call returns 0 for success and returns -1 otherwise. If it
does not succeed, it sets errno to indicate the error.
ERRORS
The msync(3) call can fail for the following reasons:
[EINVAL]
The addr argument is not a multiple of the page size; use sysconf(2)
to determine the page size.
[EIO]
An I/O error occurred.
[ENOEM]
An address in the range [addr, addr + len] was not valid for the
process or those pages aren't mapped.
SEE ALSO
mmap(2)
sysconf(2)
USAGE NOTES
The msync function is thread safe.
The msync function is not async-signal safe.