msync(S)
msync --
synchronize memory mapping with physical storage
Syntax
cc . . . -lc
#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.
msync should be used by programs that require a
memory object to be in a known state, for example, in
building transaction facilities.
Return values
Upon successful completion, the function msync returns
0; otherwise, it returns -1 and
sets errno to indicate the error.
Diagnostics
Under the following conditions, the function msync fails
and sets errno to:
EBUSY-
if some or all the addresses in the range [addr, addr + len]
are locked and MS_INVALIDATE is specified.
[EINVAL]-
if addr is not a multiple of the page size as returned by
sysconf(S),
or the value in flags is invalid.
[ENOMEM]-
if some or all the addresses in the range [addr, addr + len]
are invalid for the address space of the process or pages not mapped
are specified.
Files
/lib/libc.a-
linking library
See also
mmap(S),
sysconf(S)
Standards conformance
msync is conformant with:
AT&T SVID Issue 3;
IEEE POSIX Std 1003.4 1992 System Application Program
Interface (API) Realtime Extension [C Language]
(ISO/IEC 9945-1).
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003