manpages.info - online man pages   

Mac OS X / Darwin man pages : msync (2)
msync (2)

Table of Contents

Name

msync - synchronize a mapped region

Library

Standard C Library (libc, -lc)

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.


Table of Contents