Provided by: manpages-de-dev_4.23.1-1_all bug

BEZEICHNUNG

       msync - eine Datei mit einem Speicherabbild synchronisieren

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <sys/mman.h>

       int msync(void Adresse[.Länge], 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
       gesetzt, um den Fehler anzuzeigen.

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.

VERSIONEN

       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.

STANDARDS

       POSIX.1-2008.

GESCHICHTE

       POSIX.1-2001.

       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).)

SIEHE AUCH

       mmap(2)

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

Ü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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.