Provided by:
manpages-de-dev_0.5-4.1ubuntu1_all 
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.