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

NOM

       remap_file_pages - Créer une projection non linéaire d'un fichier

SYNOPSIS

       #define _GNU_SOURCE         /* Consultez feature_test_macros(7) */
       #include <sys/mman.h>

       int remap_file_pages(void *addr, size_t size, int prot,
                            ssize_t pgoff, int flags);

DESCRIPTION

       L'appel  système  remap_file_pages()  est  utilisé pour créer une projection non linéaire,
       c'est-à-dire une projection dans laquelle les pages du fichier sont projetées  en  mémoire
       dans  un  ordre  non séquentiel. L'avantage d'utiliser remap_file_pages() au lieu de faire
       des appels répétés à mmap(2) est que la première approche n'impose pas au noyau  de  créer
       des   structures   de   données   VMA  (Virtual  Memory  Area :  zone  mémoire  virtuelle)
       supplémentaires.

       Pour créer une projection non linéaire, nous allons effectuer les étapes suivantes :

       1. Utiliser mmap(2) pour créer une  projection  (qui  est  initialement  linéaire).  Cette
          projection doit être créée avec l'attribut MAP_SHARED.

       2. Utiliser un ou plusieurs appels à remap_file_pages() pour réorganiser la correspondance
          entre les pages de la projection et les pages du fichier. Il est possible  d'accéder  à
          la même page d'un fichier dans plusieurs endroits de la région projetée.

       Les  paramètres  pgoff  et  size  spécifient  la  région  du  fichier  à  reloger  dans la
       projection : pgoff est un décalage de fichier (Ndt : file offset) dans l'unité  de  taille
       de page du système ; size est la longueur de la région en octets.

       Le  paramètre  addr sert à deux choses. Tout d'abord, il identifie la projection des pages
       que l'on souhaite réorganiser. Ainsi, addr doit être une adresse tombant dans  une  région
       précédemment  projetée par un appel à mmap(2). Ensuite, addr spécifie l'adresse à laquelle
       les pages du fichier identifiées par pgoff et size seront placées.

       Les valeurs spécifiées dans addr et size doivent être des multiples de la taille  de  page
       système.  Si  elles  ne  le  sont  pas,  le  noyau arrondit par défaut les deux valeurs au
       multiple de taille de page le plus proche.

       Le paramètre prot doit être spécifié à 0.

       Le paramètre flags a la même signification que  pour  mmap(2),  mais  tous  les  attributs
       autres que MAP_NONBLOCK sont ignorés.

VALEUR RENVOYÉE

       S'il  réussit,  remap_file_pages()  renvoie  0.  S'il  échoue, -1 est renvoyé et errno est
       positionnée en conséquence.

ERREURS

       EINVAL addr  ne  fait  pas  référence  à  une  projection  valide  créée  avec  l'attribut
              MAP_SHARED.

       EINVAL addr, size, prot ou pgoff n'est pas valable.

VERSIONS

       L'appel  système remap_file_pages() est apparu dans Linux 2.5.46 ; la glibc le gère depuis
       la version 2.3.3.

CONFORMITÉ

       L'appel système remap_file_pages() est spécifique à Linux.

VOIR AUSSI

       getpagesize(2), mmap(2), mmap2(2), mprotect(2), mremap(2), msync(2)

COLOPHON

       Cette page fait partie de la publication 3.57 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/>.

       Alain  Portal  <http://manpagesfr.free.fr/> (2004-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> ».