Provided by: manpages-de-dev_2.16-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  5.03  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>.