MirOS Manual: msync(2)

MSYNC(2)                   BSD Programmer's Manual                    MSYNC(2)

NAME

     msync - synchronize a mapped region

SYNOPSIS

     #include <sys/types.h>
     #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-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 ex-
     cept 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

     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

     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 al-
                   lowed 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

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

HISTORY

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

BUGS

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

MirOS BSD #10-current          October 10, 1997                              1

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.