Provided by: manpages-de-dev_4.27.0-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 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.

Linux man-pages 6.9.1                              2. Mai 2024                                          msync(2)