Provided by: manpages-fr-dev_3.65d1p1-1_all bug

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);

DESCRIPTION

       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

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno  en
       conséquence.

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. (Consultez aussi sysconf(3).)

NOTES

       POSIX  spécifie  qu'au  moins  MS_SYNC ou MS_ASYNC doit être indiqué dans flags, et que si
       aucun des deux n'est indiqué msync() échouera  sur  certains  systèmes.  Cependant,  Linux
       autorise  d'appeler  msync()  sans  indiquer aucun des deux attributs, avec une sémantique
       actuellement équivalente à indiquer MS_ASYNC.  (Depuis  Linux 2.6.19,  MS_ASYNC  est  sans
       effet,  puisque  le  noyau  suit correctement les pages modifiées et les transfère vers le
       disque si besoin.)  Malgré  le  comportement  de  Linux,  les  applications  portables  et
       destinées à être pérennes doivent indiquer au moins MS_SYNC ou MS_ASYNC dans flags.

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

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

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