msync(2)msync(2)NAMEmsync - Synchronize a mapped file
SYNOPSIS
#include <sys/mman.h>
int msync(
void *addr,
size_t len,
int flags );
The following function declaration does not conform to current industry
standards and is supported only for backward compatibility: #include
<sys/types.h> #include <sys/mman.h>
int msync(
caddr_t addr,
size_t len,
int flags );
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
msync(): XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Specifies the starting address of the region to be synchronized. Spec‐
ifies the length in bytes of the region to be synchronized. This param‐
eter must be a multiple of the page size as returned by
sysconf(_SC_PAGE_SIZE). If len is not a multiple of the page size as
returned by sysconf(_SC_PAGE_SIZE), the length of the region will be
rounded up to the next multiple of the page size. Specifies one of the
following symbolic constants defined in the <sys/mman.h> file: Speci‐
fies an asynchronous cache flush. The msync() function returns after
the system schedules all write operations. Specifies a synchronous
cache flush. The msync() function returns after the system completes
all write operations. Specifies invalidating all cached pages. New
copies of the pages must be obtained from the file system the next time
they are referenced.
DESCRIPTION
The msync() function controls the caching operations of a mapped file
region. The msync() function can be used to ensure that modified pages
in the region are transferred to the file's underlying storage device.
(However, normal system activity can cause pages to be written to a
storage device, so there is no guarantee that a call to the msync()
function is the only control over when pages are written.) You can also
use the function to control the visibility of modifications with
respect to file system operations.
After a successful call to the msync() function with the flags parame‐
ter set to MS_SYNC, all previous modifications to the mapped region are
visible to processes using the read() function. Previous modifications
to the file using the write() function might be lost.
After a successful call to the msync() function with the flags parame‐
ter set to MS_INVALIDATE, all previous modifications to the file using
the write() function are visible to the mapped region. Previous direct
modifications to the mapped region might be lost.
RETURN VALUES
Upon successful completion, the msync() function returns 0 (zero). Oth‐
erwise, the msync() function returns -1 and sets errno to indicate the
error.
ERRORS
The msync() function sets errno to the specified values for the follow‐
ing conditions:
Some or all of the addresses in the range starting at addr and continu‐
ing for len bytes are locked, and MS_INVALIDATE is specified. [Tru64
UNIX] The range [addr, addr + len) includes an invalid address. One
of the following conditions applies: The addr parameter is not a multi‐
ple of the page size as returned by sysconf(_SC_PAGE_SIZE). The flags
parameter is invalid. [Tru64 UNIX] An I/O error occurred while read‐
ing from or writing to the file system. The range specified by [addr,
addr + len) is invalid for a process' address space, or the range spec‐
ifies one or more unmapped pages.
SEE ALSO
Functions: fsync(2), mmap(2), read(2), write(2), sysconf(3)
Standards: standards(5)msync(2)