ABCDEFGHIJKLMNOPQRSTUVWXYZ

msync

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



NAME
       msync - synchronize a file with a memory map

SYNOPSIS
       #include <unistd.h>
       #include <sys/mman.h>

       #ifdef _POSIX_MAPPED_FILES
       #ifdef _POSIX_SYNCHRONIZED_IO

       int msync(const void *start, size_t length, int flags);

       #endif
       #endif

DESCRIPTION
       msync  flushes  changes  made  to  the  in-core copy of a file that was
       mapped into memory using mmap(2) back to disk.   Without  use  of  this
       call  there  is  no guarantee that changes are written back before mun-
       map(2) is called.  To be more precise, the part of the file that corre-
       sponds to the memory area starting at start and having length length is
       updated.  The flags argument may have the bits  MS_ASYNC,  MS_SYNC  and
       MS_INVALIDATE  set, but not both MS_ASYNC and MS_SYNC.  MS_ASYNC speci-
       fies that an update be scheduled, but  the  call  returns  immediately.
       MS_SYNC asks for an update and waits for it to complete.  MS_INVALIDATE
       asks to invalidate other mappings of the same file (so that they can be
       updated with the fresh values just written).

RETURN VALUE
       On  success,  zero is returned.  On error, -1 is returned, and errno is
       set appropriately.

ERRORS
       EINVAL start is not a multiple of  PAGESIZE,  or  any  bit  other  than
              MS_ASYNC | MS_INVALIDATE | MS_SYNC is set in flags.

       EFAULT The indicated memory (or part of it) was not mapped.

CONFORMING TO
       POSIX.1b (formerly POSIX.4)

SEE ALSO
       mmap(2),  B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.



Linux 1.3.86                      1996-04-12                          MSYNC(2)