Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

memcntl(2)

mmap(2)

sysconf(3C)

msync(3C)                                                         msync(3C)

NAME
     msync - Speicher synchronisieren

SYNTAX
     #include <sys/mman.h>

     int msync(void *addr, sizet len, int flags);

BESCHREIBUNG
     Die Funktion msync() schreibt alle veränderten Kopien von Seiten im
     Bereich [addr, addr + len) auf deren Speichermedien zurück. msync()
     kann Kopien ungültig machen, so daß spätere Zugriffe auf die Seiten
     über das Speichermedium möglich sind. Das Speichermedium für einen
     veränderten MAPSHARED-Verweis ist die Datei, auf die die Seite abge-
     bildet wird; das Speichermedium für einen veränderten MAPPRIVATE-
     Verweis ist sein Swap-Bereich.

     flags ist ein Bitmuster, das sich aus den folgenden Werten zusammen-
     setzt:

     MSASYNC        Asynchrone Schreibzugriffe durchführen

     MSSYNC         Synchrone Schreibzugriffe durchführen

     MSINVALIDATE   Verweise ungültig machen

     Ist flags auf MSASYNC oder MSSYNC gesetzt, synchronisiert die Funk-
     tion den Inhalt der Datei so, daß er dem aktuellen Inhalt der Spei-
     cherregion entspricht.


























Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

msync(3C)                                                         msync(3C)

     -  Alle Schreibzugriffe auf die Speicherregion, die vor dem Aufruf
        erfolgt sind, werden durch nachfolgende Leseoperationen auf die
        Datei angezeigt.

     -  Es ist nicht definiert, ob vor dem Aufruf erfolgte Schreibzugriffe
        auf denselben Abschnitt der Datei durch Lesezugriffe auf die Spei-
        cherregion angezeigt werden.

     -  Ferner ist nicht definiert, ob ungeänderte Seiten im angegebenen
        Bereich auch auf die zugrundeliegenden Hardware geschrieben werden.

     Wenn flags auf MSASYNC gesetzt ist, kehrt die Funktion möglicherweise
     direkt zurück, sobald alle Schreiboperationen terminiert sind; wenn
     flags auf MSSYNC gesetzt ist, kehrt die Funktion erst wieder zurück,
     nachdem alle Schreiboperationen ausgeführt wurden.

     Wenn flags auf MSINVALIDATE gesetzt ist, synchronisiert die Funktion
     den Inhalt der Speicherregion, so daß er mit dem Inhalt der aktuellen
     Datei übereinstimmt.

     -  Alle Schreibzugriffe auf den abgebildeten Abschnitt der Datei, die
        vor dem Aufruf erfolgt sind, werden durch nachfolgende Leseopera-
        tionen auf die abgebildete Speicherregion angezeigt.

     -  Es ist nicht definiert, ob vor dem Aufruf durch einen beliebigen
        Prozeß erfolgte Schreibzugriffe auf Speicherregionen, die auf den-
        selben Abschnitt der Datei mit MAPSHARED abgebildet wurden, durch
        Lesezugriffe auf die Speicherregion angezeigt werden.

     Wenn durch msync() in die Datei geschrieben wird, werden die Felder
     stctime und stmtime der Datei zur Aktualisierung gekennzeichnet.

     Die Wirkung von msync(addr, len, flags) ist äquivalent zu:

          memcntl(addr, len, MCSYNC, flags, 0, 0)

ERGEBNIS
     Nach erfolgreicher Ausführung liefert die Funktion msync() den Wert 0;
     tritt ein Fehler auf, wird -1 zurückgegeben und errno zur Anzeige des
     Fehlers gesetzt.

FEHLER
     Die Funktion msync() schlägt bei folgenden Bedingungen fehl:

     EINVAL    Das Argument addr ist kein Vielfaches der Seitenlänge, wie
               von sysconf() zurückgeliefert.

     EIO       Beim Lesen vom Dateisystem oder Schreiben auf dieses trat
               ein Ein-/Ausgabefehler auf.





Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

msync(3C)                                                         msync(3C)

     ENOMEM    Einige oder alle Adressen im Bereich [addr, addr + len) sind
               für den Adreßbereich des Prozesses ungültig, oder nicht
               abgebildete Seiten sind angegeben.

HINWEISE
     msync() sollte von Programmen verwendet werden, die voraussetzen, daß
     sich ein Speicherobjekt in einem bekannten Zustand befindet, z. B. bei
     Transaktionsverarbeitung.

     Während der normalen Systemaktivitäten können Seiten auf Platte
     geschrieben werden. Daher kann nicht gewährleistet werden, daß nur
     durch msync() gesteuert wird, ob Seiten auf Platte geschrieben werden
     oder nicht.

SIEHE AUCH
     memcntl(2), mmap(2), sysconf(3C).






































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026