NOM
msync - Synchroniser un fichier et une projection en mémoire
SYNOPSIS
#include <sys/mman.h>
int msync(void *addr, size_t length, int flags);
msync() écrit sur le disque les modifications qui ont été effectuées
sur la copie d’un fichier qui est projeté en mémoire par mmap(2). Si
l’on n’utilise pas cette fonction, rien ne garantit que les changements
soient écrits avant la suppression de la projection par munmap(2). Pour
être plus précis, la portion du fichier correspondant à la zone mémoire
commençant en addr et ayant une longueur de length est mise à jour.
L’argument flags comprend les bits MS_ASYNC, MS_SYNC et MS_INVALIDATE,
mais MS_ASYNC et MS_SYNC ne peuvent pas être utilisés conjointement.
MS_ASYNC demande une mise à jour, mais l’appel retourne immédiatement.
MS_SYNC demande une mise à jour, et attend qu’elle se termine avant de
revenir. MS_INVALIDATE demande l’invalidation de toutes les autres
projections du même fichier, afin qu’elles soient toutes remises à jour
avec les nouvelles données écrites.
VALEUR RENVOYÉE
En cas de réussite, zéro est renvoyé, sinon -1 est renvoyé et errno
contient le code d’erreur.
ERREURS
EBUSY MS_INVALIDATE était positionné dans flags, mais un verrouillage
mémoire existe pour l’intervalle indiqué.
EINVAL addr n’est pas aligné sur une frontière de page (un multiple de
PAGESIZE), ou d’autres bits que MS_ASYNC | MS_INVALIDATE |
MS_SYNC sont à 1 dans flags. Ou bien MS_SYNC et MS_ASYNC sont
tous les deux spécifiés dans flags.
ENOMEM La zone mémoire indiquée (ou une partie de cette zone) n’est pas
une projection.
CONFORMITÉ
POSIX.1-2001.
Cet appel a été introduit dans Linux 1.3.21, et utilisait EFAULT au
lieu de ENOMEM. Dans Linux 2.4.19, ceci a été remplacé par la valeur
POSIX ENOMEM.
DISPONIBILITÉ
Sur les systèmes conformes à la spécification POSIX sur lequel msync()
est disponible, les constantes symboliques _POSIX_MAPPED_FILES et
_POSIX_SYNCHRONIZED_IO sont définies dans <unistd.h> comme étant des
valeurs supérieures à 0. (Voir aussi sysconf(3).)
VOIR AUSSI
mmap(2)
B.O. Gallmeister, POSIX.4, O’Reilly, pp. 128–129 et 389–391.
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».