Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       msync - synchronisiere eine Datei mit dem projizierten Speicherbereich

ÜBERSICHT

       #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

BESCHREIBUNG

       msync schreibt die Änderungen, die in der Kernelkopie der Datei gemacht
       wurden, die mittels mmap(2) in den Speicher projiziert wurde,  auf  die
       Platte.   Ohne  Verwendung  dieses Aufrufs besteht keine Garantie, dass
       Änderungen  auf  die  Platte  geschrieben   werden,   bevor   munmap(2)
       aufgerufen  wird.   Um  genauer  zu  sein:  Der Teil der Datei, der dem
       Speicherbereich entspricht, der bei start anfängt und length lang  ist,
       wird  neu  geschrieben.   Der  Parameter  flags kann die Bits MS_ASYNC,
       MS_SYNC und MS_INVALIDATE gesetzt  haben,  jedoch  nicht  MS_ASYNC  und
       MS_SYNC  gleichzeitig.   MS_ASYNC bedeutet, dass die Bearbeitung in die
       Warteschlange aufgenommen werden darf, die Routine kehrt sofort zurück.
       MS_SYNC  bewirkt,  dass das Schreiben sofort erledigt wird, die Routine
       kehrt erst nach dessen Ausführung zurück.  MS_INVALIDATE bewirkt,  dass
       andere  Projektionen von der gleichen Datei ungültig werden (sodass sie
       nicht mit den neuen, gerade geschriebenen  Werten  aktualisiert  werden
       können)

RÜCKGABEWERT

       Bei  Erfolg  wird  null  zurückgegeben,  bei  Fehler  -1 und errno wird
       entsprechend gesetzt.

FEHLER

       EINVAL start ist kein  Vielfaches  von  PAGESIZE  oder  ein  Bit  außer
              MS_ASYNC | MS_INVALIDATE | MS_SYNC ist in +.IR flags +gesetzt.

       EFAULT Der  angegebene  Speicherbereich (oder ein Teil davon) ist keine
              Projektion

KONFORM ZU

       POSIX.4.

SIEHE AUCH

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