*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->NetBSD man pages -> msync (2)              



NAME    [Toc]    [Back]

     msync - synchronize a mapped region

LIBRARY    [Toc]    [Back]

     Standard C Library (libc, -lc)

SYNOPSIS    [Toc]    [Back]

     #include <sys/mman.h>

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

DESCRIPTION    [Toc]    [Back]

     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    [Toc]    [Back]

     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 occurred 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    [Toc]    [Back]

     mlock(2), mmap(2), munlock(2)

HISTORY    [Toc]    [Back]

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

BUGS    [Toc]    [Back]

     Writes are currently done synchronously even if the MS_ASYNC flag is

BSD                            October 10, 1997                            BSD
[ Back ]
 Similar pages
Name OS Title
msync Tru64 Synchronize a mapped file
munmap Tru64 Unmap a mapped region
msync HP-UX synchronize the memory of a mapped file with physical storage
msem_remove HP-UX remove a semaphore in mapped file or anonymous region
msem_init HP-UX initialize a semaphore in a mapped file or anonymous memory region
msem_init Tru64 Initialize a semaphore in a mapped file or shared memory region
hilkbd HP-UX HP-HIL mapped keyboard driver
kmem Tru64 mapped kernel memory interface
eqmemsize HP-UX determines the minimum size (in pages) of the equivalently mapped reserve pool
t_sync HP-UX synchronize transport library
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service