Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       msync - eine Datei mit einem Speicherabbild synchronisieren

ÜBERSICHT

       #include <sys/mman.h>

       int msync(void *Adresse, size_t Länge, int Schalter);

BESCHREIBUNG

       msync  leitet  Änderungen,  die in der im Speicher befindlichen Kopie einer Datei gemacht wurden, mittels
       mmap(2) zurück in das Dateisystem. 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 Adresse anfängt und Länge lang ist, wird aktualisiert.

       Das  Argument  Schalter  sollte  entweder  MS_ASYNC  oder  MS_SYNC  angeben.  Es  kann zusätzlich das Bit
       MS_INVALIDATE enthalten. Diese Bits haben folgende Bedeutung:

       MS_ASYNC
              gibt an, dass eine Aktualisierung geplant wird, der Aufruf jedoch sofort zurückkehrt.

       MS_SYNC
              fordert eine Aktualisierung an und wartet, bis sie abgeschlossen ist.

       MS_INVALIDATE
              erbittet, dass andere Abbildungen der selben Datei verworfen werden sollen (so dass  sie  mit  den
              neuen nur geschriebenen Werten aktualisiert werden können).

RÜCKGABEWERT

       Bei  Erfolg  wird  Null  zurückgegeben.  Bei  einem  Fehler  wird -1 zurückgegeben und errno entsprechend
       gesetzt.

FEHLER

       EBUSY  MS_INVALIDATE wurde in Schalter angegeben und es existiert eine Speichersperre für den angegebenen
              Adressbereich.

       EINVAL adresse ist kein Vielfaches der SEITENGRÖßE oder ein anderes Bit als MS_ASYNC  |  MS_INVALIDATE  |
              MS_SYNC ist in Schalter gesetzt oder in schalter sind sowohl MS_SYNC als auch MS_ASYNC gesetzt.

       ENOMEM Der angegebene Speicher (oder ein Teil davon) wurde nicht abgebildet.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008.

       Dieser  Aufruf  wurde  in  Linux 1.3.21 eingeführt und dann EFAULT an Stelle von ENOMEM benutzt. In Linux
       2.4.19 wurde dies auf den POSIX-Wert ENOMEM geändert.

       Auf  POSIX-Systemen,  auf  denen  msync()  verfügbar  ist,  sind  sowohl  _POSIX_MAPPED_FILES  als   auch
       _POSIX_SYNCHRONIZED_IO in <unistd.h> als ein Wert größer als 0 definiert. (Siehe auch sysconf(3).)

ANMERKUNGEN

       Gemäß  POSIX  muss  entweder  MS_SYNC  oder  MS_ASYNC  in  Schalter angegeben werden und das tatsächliche
       Fehlschlagen beim Einfügen von einem dieser Schalter wird dazu führen, dass msync() auf einigen  Systemen
       scheitert.  Linux  erlaubt  jedoch  einen  Aufruf von msync() ohne diese Schalter mit einer Semantik, die
       (derzeit) der Angabe von MS_ASYNC entspricht. (Seit Linux 2.6.19 ist MS_ASYNC de facto ein Leerbefehl, da
       der Kernel unsaubere Seiten  korrekt  verfolgt  und  wenn  nötig  aus  dem  Speicher  leert.)  Trotz  des
       Linux-Verhaltens  sollten  portable,  zukunftssichere  Anwendungen  sicherstellen,  dass sie MS_SYNC oder
       MS_ASYNC in Schalter angeben.

SIEHE AUCH

       mmap(2)

       B.O. Gallmeister, POSIX.4, O'Reilly, Seiten 128–129 und 389–391.

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  5.10  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite  wurde von Martin Schulze <joey@infodrom.org> und Chris
       Leick <c.leick@vollbio.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer.

Linux                                             9. Juni 2020                                          MSYNC(2)