Provided by: manpages-fr-dev_4.23.1-1_all bug

NOM

       msync - Synchroniser un fichier et une projection en mémoire

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <sys/mman.h>

       int msync(void addr[.length], size_t length, int flags);

DESCRIPTION

       msync()  écrit  les modifications qui ont été effectuées sur la copie d'un fichier qui est
       projeté en mémoire par mmap(2) sur le système de  fichiers.  Si  l'on  n'utilise  pas  cet
       appel,  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.

       Le  paramètre  flags  devrait  indiquer  exactement  MS_ASYNC  et MS_SYNC et il peut aussi
       inclure le bit MS_INVALIDATE. Ces bits ont la signification suivante :

       MS_ASYNC
              Indiquer la programmation d'une mise à jour, mais l'appel renvoie immédiatement.

       MS_SYNC
              Demander une mise à jour et attendre qu'elle se termine.

       MS_INVALIDATE
              Demander d'invalider d'autres projections du même fichier (pour  qu'elles  puissent
              être mises à jour avec les nouvelles valeurs écrites récemment).

VALEUR RENVOYÉE

       En  cas  de succès, zéro est renvoyé. En cas d'erreur, -1 est renvoyé et errno est définie
       pour préciser l'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.

VERSIONS

       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.

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       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.

       Sur les systèmes conformes à la spécification POSIX sur lesquels 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).)

VOIR AUSSI

       mmap(2)

       B.O. Gallmeister, POSIX.4, O'Reilly, p. 128–129 et 389–391.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier  <barbier@debian.org>,  David  Prévot <david@tilapin.org> et Jean-Philippe MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.