MSYNC(2)

NAME
msync - synchronize a mapped region

LIBRARY
libc

SYNOPSIS
#include <sys/types.h>
#include <sys/mman.h>
int
msync(void *addr, size_t len, int flags);

DESCRIPTION
The msync() system call writes modified whole pages back to the filesystem and updates the file modification time. Only those pages containing addr and len-1 succeeding locations will be examined. The flags argument may be specified as follows:

    MS_ASYNC	Return immediately
    MS_SYNC		Perform synchronous writes
    MS_INVALIDATE	Invalidate all cached data

The MS_ASYNC flag is not permitted to be combined with other flags.

RETURN VALUES
If any errors occur, -1 is returned and errno is set to indicate the error. Otherwise, a 0 value is returned.

ERRORS
msync() will fail if:

[EINVAL]
    addr is not a multiple of the hardware page size.

[EINVAL]
    len is too large, or less than 1.

[EINVAL]
    flags combined MS_ASYNC with another flag, which is not permitted.

[EIO]
    An I/O error occurred while writing to the file system.

SEE ALSO
madvise(2), mincore(2), mprotect(2), munmap(2)

HISTORY
The msync() function first appeared in 4.4BSD.