Seth Woolley's Man Viewer

msync(2) - msync, msync - synchronize a file with a memory map - man 2 msync

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

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



NAME
       msync - synchronize a file(1,n) with a memory map

SYNOPSIS
       #include <sys/mman.h>

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

DESCRIPTION
       msync  flushes  changes  made  to  the  in-core copy of a file(1,n) 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(1,n) 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(7,n,1 builtins), but not both MS_ASYNC and MS_SYNC.  MS_ASYNC speci-
       fies that an update(7,n) be scheduled, but  the  call  returns  immediately.
       MS_SYNC asks for an update(7,n) and waits for it to complete.  MS_INVALIDATE
       asks to invalidate other mappings of the same file(1,n) (so that they can be
       updated with the fresh values just written).

RETURN VALUE
       On  success,  zero is returned.  On error(8,n), -1 is returned, and errno is
       set(7,n,1 builtins) appropriately.

ERRORS
       EINVAL start is not a multiple of  PAGESIZE,  or  any  bit  other  than
              MS_ASYNC | MS_INVALIDATE | MS_SYNC is set(7,n,1 builtins) in(1,8) flags.

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

AVAILABILITY
       On  POSIX systems on which msync is available, both _POSIX_MAPPED_FILES
       and _POSIX_SYNCHRONIZED_IO are defined in(1,8) <unistd.h> to a value greater
       than 0. (See also sysconf(3).)

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

       This  call was introduced in(1,8) Linux 1.3.21, and then used EFAULT instead
       of ENOMEM. In Linux 2.4.19 this was changed to the POSIX value  ENOMEM.

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



Linux 2.4                         2003-08-21                          MSYNC(2)

References for this manual (incoming links)