READAHEAD(2)

NOM
readahead - Lire d'avance une ou plusieurs pages en mémoire cache

SYNOPSIS
#define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
#include <fcntl.h>

ssize_t readahead(int fd, off64_t offset, size_t count);

DESCRIPTION
readahead() initie une lecture d'avance d'un fichier de sorte que les lectures suivantes de ce fichier soient satisfaites depuis le cache, sans bloquer les entrés-sorties sur le disque (en supposant que la lecture d'avance ait été effectuée suffisamment tôt et que les autres activités du système n'aient pas vidé les pages du cache).

The fd argument is a file descriptor identifying the file which is to be read. The offset argument specifies the starting point from which data is to be read and count specifies the number of bytes to be read. I/O is performed in whole pages, so that offset is effectively rounded down to a page boundary and bytes are read up to the next page boundary greater than or equal to (offset+count). readahead() does not read beyond the end of the file. The file offset of the open file description referred to by the file descriptor fd is left unchanged.

VALEUR RENVOYÉE
readahead() renvoie zéro s'il réussit et -1 s'il échoue et écrit la cause de l'erreur dans errno.

ERREURS

EBADF
    fd n'est pas un descripteur de fichier valable ou n'est pas ouvert en lecture.

EINVAL
    fd ne référence pas un type de fichier sur lequel on peut appliquer readahead().

VERSIONS
L'appel système readahead() est apparu dans Linux 2.4.13 ; il est géré par la glibc depuis la version 2.3.

CONFORMITÉ
L'appel système readahead() est spécifique à Linux et ne devrait pas être utilisé dans des applications conçues pour être portable.

NOTES
Dans le cas de certaines architectures 32 bits, la signature de cet appel système diffère, comme expliqué dans syscall(2).

BOGUES
readahead() essaie de programmer les lectures en arrière-plan et retourne immédiatement. Cependant, la fonction peut bloquer en attente des métadonnées du système de fichier, nécessaires pour localiser les blocs demandés. Cela arrive souvent avec ext[234] et les fichiers très grands utilisant les blocs indirects à la place de la fonctionnalité des « extents », donnant l'impression que l'appel bloque en attente de la lecture complète des données.

VOIR AUSSI
lseek(2), madvise(2), mmap(2), posix_fadvise(2), read(2)

COLOPHON
Cette page fait partie de la publication 5.08 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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> et David Prévot <david@tilapin.org> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 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>.