Documentation Archive Developer
ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages


This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).

MSYNC(2)                    BSD System Calls Manual                   MSYNC(2)

     msync -- synchronize a mapped region

     Standard C Library (libc, -lc)

     #include <sys/mman.h>

     msync(void *addr, size_t len, int flags);

     The msync() system call writes modified whole pages back to the filesys-tem filesystem
     tem 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.

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

     msync() will fail if:

     [EBUSY]            Some of the specified addresses are locked and
                        MS_INVALIDATE is specified.

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

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

     [EINVAL]           flags is invalid (e.g., it combines MS_ASYNC with
                        another flag, which is not permitted).

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

     [ENOMEM]           The specified address range is outside of the address
                        range of the process or includes an unmapped page.

     #include <sys/types.h>
     #include <sys/mman.h>

     The include file <sys/types.h> is necessary.

     madvise(2), mincore(2), mprotect(2), munmap(2), compat(5)

     The msync() function first appeared in 4.4BSD.

BSD                              June 21, 1994                             BSD