MSYNC(2)

BEZEICHNUNG
msync - eine Datei mit einem Speicherabbild synchronisieren

ÜBERSICHT
#include <sys/mman.h>

int msync(void *adresse, size_t laenge, int schalter);

BESCHREIBUNG
msync() flushes changes made to the in-core copy of a file that was mapped into memory using mmap(2) back to the filesystem. Without use of this call there is no guarantee that changes are written back before munmap(2) is called. To be more precise, the part of the file that corresponds to the memory area starting at addr and having length length is updated. Beim Argument schalter können die Bits MS_ASYNC, MS_SYNC und MS_INVALIDATE gesetzt sein, aber nicht MS_ASYNC und MS_SYNC gleichzeitig. MS_ASYNC gibt an, dass eine Aktualisierung geplant, der Aufruf aber sofort zurückkehrt. MS_SYNC fragt eine Aktualisierung an und wartet bis zur Komplettierung. MS_INVALIDATE fragt eine Annullierung anderer Abbilder der gleichen Datei an (so dass sie mit den frischen gerade 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. This call was introduced in Linux 1.3.21, and then used EFAULT instead of ENOMEM. In Linux 2.4.19, this was changed to the POSIX value ENOMEM.

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
According to POSIX, either MS_SYNC or MS_ASYNC must be specified in flags, and indeed failure to include one of these flags will cause msync() to fail on some systems. However, Linux permits a call to msync() that specifies neither of these flags, with semantics that are (currently) equivalent to specifying MS_ASYNC. (Since Linux 2.6.19, MS_ASYNC is in fact a no-op, since the kernel properly tracks dirty pages and flushes them to storage as necessary.) Notwithstanding the Linux behavior, portable, future-proof applications should ensure that they specify either MS_SYNC or MS_ASYNC in flags.

SIEHE AUCH
mmap(2) B.O. Gallmeister, POSIX.4, O'Reilly, Seiten 128-129 und 389-391.

KOLOPHON
This page is part of release 3.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://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>.