Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
MSYNC(2)                  FreeBSD System Calls Manual                 MSYNC(2)

NAME
     msync - synchronize a mapped region

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/mman.h>

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

DESCRIPTION
     The msync() system call writes all pages with shared modifications in the
     specified region of the process's address space back to permanent
     storage, and, if requested, invalidates cached data mapped in the region.
     If len is 0, all modified pages within the region containing addr will be
     flushed; if len is non-zero, only modified pages containing addr and len
     succeeding locations will be flushed.  Any required synchronization of
     memory caches will also take place at this time.  Filesystem operations
     on a file that is mapped for shared modifications are unpredictable
     except after an msync().

     The flags argument is formed by or'ing the following values

           MS_ASYNC         Perform asynchronous writes.
           MS_SYNC          Perform synchronous writes.
           MS_INVALIDATE    Invalidate cached data after writing.

ERRORS
     The following errors may be reported:

     [EBUSY]            The MS_INVALIDATE flag was specified and a portion of
                        the specified region was locked with mlock(2).

     [EINVAL]           The specified flags argument was invalid.

     [EINVAL]           The addr parameter was not page aligned.

     [EINVAL]           The addr parameter did not specify an address part of
                        a mapped region.

     [EINVAL]           The len parameter was negative.

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

     [ENOMEM]           Addresses in the specified region are outside the
                        range allowed for the address space of the process, or
                        specify one or more pages which are unmapped.

SEE ALSO
     mlock(2), mmap(2), munlock(2)

BUGS
     Writes are currently done synchronously even if the MS_ASYNC flag is
     specified.

HISTORY
     The msync() function first appeared in 4.4BSD.  It was modified to
     conform to IEEE Std 1003.1b-1993 (``POSIX.1b'') in NetBSD 1.3.

FreeBSD 11.0-PRERELEASE        October 10, 1997        FreeBSD 11.0-PRERELEASE

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | ERRORS | SEE ALSO | BUGS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=msync&sektion=2&manpath=NetBSD+1.5>

home | help