msync(3C) 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 locations. msync
optionally invalidates any copies so that further references to the
pages will be obtained by the system 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 pattern 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 transaction facilities.
SEE ALSO
memcntl(2), mmap(2), sysconf(3C).
8/91 Page 1