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

  man pages->OpenBSD man pages -> msync (2)              
Title
Content
Arch
Section
 

MSYNC(2)

Contents


NAME    [Toc]    [Back]

     msync - synchronize a mapped region

SYNOPSIS    [Toc]    [Back]

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

     int
     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-1  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.

RETURN VALUES    [Toc]    [Back]

     Upon  successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.

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.

     [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.

     [EIO]         An I/O error occurred while writing.

SEE ALSO    [Toc]    [Back]

      
      
     madvise(2), mincore(2), minherit(2), mprotect(2), munmap(2)

HISTORY    [Toc]    [Back]

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

BUGS    [Toc]    [Back]

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

OpenBSD      3.6                         October     10,     1997
[ 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