msync(3C) LIBRARY FUNCTIONS msync(3C)
NAME
msync - synchronize memory with physical storage
SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>
int msync(caddrt addr, sizet len, int flags);
DESCRIPTION
The function msync writes all modified copies of pages over
the range [addr, addr + len) to their backing storage loca-
tions. msync optionally invalidates any copies so that
further references to the pages will be obtained by the sys-
tem from their backing storage locations. The backing
storage for a modified MAPSHARED mapping is the file the
page is mapped to; the backing storage for a modified
MAPPRIVATE mapping is its swap area. flags is a bit pat-
tern built from the following values:
MSASYNC perform asynchronous writes
MSSYNC perform synchronous writes
MSINVALIDATE invalidate mappings
If MSASYNC is set, msync returns immediately once all write
operations are scheduled; if MSSYNC is set, msync does not
return until all write operations are completed.
MSINVALIDATE invalidates all cached copies of data in
memory, so that further references to the pages will be
obtained by the system from their backing storage locations.
The effect of msync(addr, len, flags) is equivalent to:
memcntl(addr, len, MCSYNC, flags, 0, 0)
RETURN VALUE
Upon successful completion, the function msync returns a
value of 0; otherwise, it returns a value of -1 and sets
errno to indicate an error.
ERRORS
See memcntl(2).
NOTES
msync should be used by programs that require a memory
object to be in a known state, for example in building tran-
saction facilities.
SEE ALSO
memcntl(2), mmap(2), sysconf(3C).
1