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, daß Ä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,
daß die Bearbeitung in die Warteschlange aufgenommen werden darf, die
Routine kehrt sofort zurück. MS_SYNC bewirkt, daß das Schreiben
sofort erledigt wird, die Routine kehrt erst nach dessen Ausführung
zurück. MS_INVALIDATE bewirkt, daß andere Projektionen von der
gleichen Datei ungültig werden (sodaß sie nicht mit den neuen,
gerade geschriebenen Werten aktualisiert werden können)