MSYNC(3) — C LIBRARY FUNCTIONS
NAME
msync − synchronize memory with physical storage
SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>
int msync(addr, len, flags)
caddr_t addr; size_t len; int flags;
DESCRIPTION
msync() writes all modified copies of pages over the range [addr, addr + len) to their permanent storage locations. msync() optionally invalidates any copies so that further references to the pages will be obtained by the system from their permanent storage locations.
Values for flags are defined in <sys/mman.h> as:
#define MS_ASYNC0x1/∗ Return immediately ∗/
#define MS_INVALIDATE0x2 /∗ Invalidate mappings ∗/
and are used to control the behavior of msync(). One or more flags may be specified in a single call.
MS_ASYNC returns immediately once all I/O operations are scheduled; normally, msync() will not return until all I/O operations are complete. MS_INVALIDATE invalidates all cached copies of data from memory objects, requiring them to be re-obtained from the object’s permanent storage location upon the next reference.
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
msync() returns:
0 on success.
−1 on failure and sets errno to indicate the error.
ERRORS
EINVAL addr is not a multiple of the page size as returned by getpagesize(2).
flags is not some combination of MS_ASYNC or MS_INVALIDATE.
EIO An I/O error occurred while reading from or writing to the file system.
ENOMEM Addresses in the range [addr, addr + len) are outside the valid range for the address space of a process, or specify one or more pages that are not mapped.
EPERM MS_INVALIDATE was specified and one or more of the pages is locked in memory.
SEE ALSO
Sun Release 4.1 — Last change: 21 January 1990