Loading

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