msync(3C)
msync --
synchronize memory with physical storage
Synopsis
#include <sys/types.h>
#include <sys/mman.h>
int msync(caddr_t addr, size_t 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 MAP_SHARED mapping is the file
the page is mapped to;
the backing storage for a modified MAP_PRIVATE mapping is its swap area.
flags
is a bit pattern built from the following values:
MS_ASYNC-
perform asynchronous writes
MS_SYNC-
perform synchronous writes
MS_INVALIDATE-
invalidate mappings
If MS_ASYNC is set, msync returns immediately once all write operations are scheduled;
if MS_SYNC is set, msync does not return until all write operations are completed.
MS_INVALIDATE 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, MC_SYNC, flags, 0, 0)
Return values
Upon successful completion, the function msync returns
0; otherwise, it returns -1 and
sets errno to indicate the error.
References
memcntl(2),
mmap(2),
sysconf(3C)
Notices
msync
should be used by programs that require a memory object to
be
in a known state, for example, in building transaction facilities.
© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004