msync(3C) msync(3C)
NAME
msync - synchronize storage
SYNOPSIS
#include <sys/mman.h>
int msync(void *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 media. msync() can
invalidate copies, so that further references to the pages are possi-
ble via the backing storage medium. 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 opera-
tions 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)
RESULT
Upon successful completion, the function msync() returns 0; otherwise,
it returns -1 and sets errno to indicate the error.
NOTES
msync() should be used by programs that require a memory object to be
in a known state, for example, in transaction processing.
SEE ALSO
memcntl(2), mmap(2), sysconf(3C).
Page 1 Reliant UNIX 5.44 Printed 11/98