Provided by: manpages-de-dev_2.5-1_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.

VERFÜGBARKEIT

       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  4.15  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
       <debian-l10n-german@lists.debian.org>.