Loading

NOM

       posix_fadvise - Prédéclarer des accès aux données d’un fichier

SYNOPSIS

       #define _XOPEN_SOURCE 600
       #include <fcntl.h>

       int posix_fadvise(int fd, off_t offset, off_t len, int advice);

       Les  programmes  peuvent  utiliser  posix_fadvise()  pour annoncer leur
       intention d’accéder aux données d’un fichier suivant un certain  ordre,
       permettant ainsi au noyau de réaliser les optimisations appropriées.

       L’indication   advice  s’applique  à  une  région  (pas  nécessairement
       existante) débutant à offset et s’étendant sur len octets  (ou  jusqu’à
       la  fin  du fichier si len vaut zéro) dans le fichier référencé par fd.
       L’indication n’oblige à rien, il  s’agit  seulement  d’une  supposition
       concernant le comportement futur de l’application.

       Les valeurs possibles pour advice incluent :

       POSIX_FADV_NORMAL
              Indique   que   l’application   n’a   pas  d’indice  particulier
              concernant les accès aux données du fichier. Le noyau appliquera
              son comportement par défaut.

       POSIX_FADV_SEQUENTIAL
              L’application  pense  accéder aux données séquentiellement (dans
              l’ordre des offsets croissants).

       POSIX_FADV_RANDOM
              Les accès se feront de manière aléatoire.

       POSIX_FADV_NOREUSE
              Les données ne seront accédées qu’une seule fois.

       POSIX_FADV_WILLNEED
              Les données seront accédées dans le futur proche.

       POSIX_FADV_DONTNEED
              Les données ne seront pas accédées dans le futur proche.

VALEUR RENVOYÉE

       L’appel renvoie zéro s’il réussit. S’il  échoue,  il  renvoie  un  code
       d’erreur.

ERREURS

       EBADF  L’argument fd n’est pas un descripteur de fichier valable.

       EINVAL L’indication advice est invalide.

       ESPIPE Le  descripteur correspond à un tube ou une FIFO. (Linux renvoie
              en fait EINVAL dans ce cas).

VERSIONS

       posix_fadvise() est apparu dans le  noyau  2.5.60.  La  glibc  le  gère
       depuis la version 2.2.

CONFORMITÉ

       POSIX.1-2001. Veuillez noter que le type du paramètre len a été modifié
       de size_t en off_t dans la spécification POSIX.1-2003 TC1.

NOTES

       Sous Linux, POSIX_FADV_NORMAL configure la fenêtre de lecture anticipée
       à    sa    taille   par   défaut   pour   le   périphérique   concerné.
       POSIX_FADV_SEQUENTIAL  double  cette   taille,   et   POSIX_FADV_RANDOM
       désactive  la lecture anticipée. Ces modifications affectent le fichier
       entier, pas seulement la région indiquée (mais les autres  descripteurs
       ouverts sur le même fichier ne sont pas modifiés).

       POSIX_FADV_WILLNEED  initie  une  lecture  non  bloquante  de la région
       indiquée dans le cache. La quantité de données lues peut être  diminuée
       suivant  la  charge  mémoire  (quelques  méga-octets  seront en général
       disponibles et souvent suffisants).

       Sous les noyaux antérieurs à 2.6.18, POSIX_FADV_NOREUSE avait  la  même
       sémantique  que  POSIX_FADV_WILLNEED.  Il  s’agissait  sans  doute d’un
       bogue; depuis Linux 2.6.18, cet attribut n’a aucun effet.

       POSIX_FADV_DONTNEED essaye de libérer les pages de cache associées avec
       la région indiquée. Ceci est utile par exemple lors du parcours de très
       gros fichiers. Un programme peut ainsi demander régulièrement au  noyau
       de  libérer  les  pages  déjà utilisées, pour éviter que des pages plus
       utiles ne soient éliminées à leur place.

       Les pages qui n’ont pas encore été écrites ne sont pas affectées, ainsi
       si  une application veut s’assurer que les pages seront relâchées, elle
       devrait appeler fsync(2) ou fdatasync(2) d’abord.

BOGUES

       Dans les noyaux antérieurs à 2.6.6, si le paramètre len était  nul,  la
       valeur était interprétée comme « zéro octets », et non comme « tous les
       octets jusqu’à la fin du fichier ».

VOIR AUSSI

       readahead(2),           posix_fallocate(3),           posix_madvise(3),
       feature_test_macros(7)

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