.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH posix_fadvise 2 "17 mai 2025" "Pages du manuel de Linux 6.15" .SH NOM posix_fadvise \- Prédéclarer des accès aux données d'un fichier .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP,\ \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .P \fBint posix_fadvise(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, off_t \fP\fIsize\fP\fB, int \fP\fIadvice\fP\fB);\fP .fi .P .ad l .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7)) : .RE .P \fBposix_fadvise\fP()\ : .nf _POSIX_C_SOURCE >= 200112L .fi .SH DESCRIPTION Les programmes peuvent utiliser \fBposix_fadvise\fP() 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. .P The \fIadvice\fP applies to a (not necessarily existent) region starting at \fIoffset\fP and extending for \fIsize\fP bytes (or until the end of the file if \fIsize\fP is 0) within the file referred to by \fIfd\fP. The \fIadvice\fP is not binding; it merely constitutes an expectation on behalf of the application. .P Les valeurs possibles pour \fIadvice\fP incluent\ : .TP \fBPOSIX_FADV_NORMAL\fP 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. .TP \fBPOSIX_FADV_SEQUENTIAL\fP L'application pense accéder aux données séquentiellement (dans l'ordre des offsets croissants). .TP \fBPOSIX_FADV_RANDOM\fP Les accès se feront de manière aléatoire. .TP \fBPOSIX_FADV_NOREUSE\fP Les données ne seront accédées qu'une seule fois. .IP Before Linux 2.6.18, \fBPOSIX_FADV_NOREUSE\fP had the same semantics as \fBPOSIX_FADV_WILLNEED\fP. This was probably a bug; from Linux 2.6.18 until Linux 6.2 this flag was a no\-op. Since Linux 6.3, \fBPOSIX_FADV_NOREUSE\fP signals that the kernel page replacement algorithm can ignore access to mapped page cache marked by this flag. This is useful, for example, while streaming large files. .TP \fBPOSIX_FADV_WILLNEED\fP Les données seront accédées dans le futur proche. .IP \fBPOSIX_FADV_WILLNEED\fP 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égaoctets seront en général disponibles et souvent suffisants). .TP \fBPOSIX_FADV_DONTNEED\fP Les données ne seront pas accédées dans le futur proche. .IP \fBPOSIX_FADV_DONTNEED\fP essaye de libérer les pages de cache associées avec la région indiquée. Cela 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. .IP Requests to discard partial pages are ignored. It is preferable to preserve needed data than discard unneeded data. If the application requires that data be considered for discarding, then \fIoffset\fP and \fIsize\fP must be page\-aligned. .IP L'implémentation \fIpeut\fP essayer d'écrire \fIa posteriori\fP sur des pages dans la zone indiquée, mais ce n'est pas garanti. Les pages qui n'ont pas encore été écrites ne seront pas libérées. Si une application veut s'assurer que les pages seront relâchées, elle devrait d'abord appeler \fBfsync\fP(2) ou \fBfdatasync\fP(2). .SH "VALEUR RENVOYÉE" L'appel renvoie zéro s'il réussit. S'il échoue, il renvoie un code d'erreur. .SH ERREURS .TP \fBEBADF\fP L'argument \fIfd\fP n'est pas un descripteur de fichier valable. .TP \fBEINVAL\fP L'indication \fIadvice\fP n'est pas valable. .TP \fBESPIPE\fP .\" commit 87ba81dba431232548ce29d5d224115d0c2355ac Le descripteur de fichier indiqué correspond à un tube ou une FIFO (\fBESPIPE\fP est l'erreur spécifiée par POSIX, mais avant Linux 2.6.16, Linux renvoyait \fBEINVAL\fP dans ce cas). .SH VERSIONS Under Linux, \fBPOSIX_FADV_NORMAL\fP sets the readahead window to the default size for the backing device; \fBPOSIX_FADV_SEQUENTIAL\fP doubles this size, and \fBPOSIX_FADV_RANDOM\fP disables file readahead entirely. \fBPOSIX_FADV_NOREUSE\fP does not modify the readahead window size. These changes affect the entire file, not just the specified region (but other open file handles to the same file are unaffected). .SS "Différences entre bibliothèque C et noyau" The name of the wrapper function in the C library is \fBposix_fadvise\fP(). The underlying system call is called \fBfadvise64\fP() (or, on some architectures, \fBfadvise64_64\fP()); the difference between the two is that the former system call assumes that the type of the \fIsize\fP argument is \fIsize_t\fP, while the latter expects \fIloff_t\fP there. .SS "Variantes dépendantes de l'architecture" Certaines architectures nécessitent que les paramètres 64 bits soient alignés dans une paire de registres adéquate (consultez \fBsyscall\fP(2) pour plus de renseignements). Sur ces architectures, la signature d'appel de \fBposix_fadvise\fP() indiquée dans le SYNOPSIS imposerait le gaspillage d'un registre de remplissage entre les paramètres \fIfd\fP et \fIoffset\fP. Pour cette raison, ces architectures définissent un appel système différent qui réordonne correctement les paramètres, mais qui est sinon strictement similaire à \fBposix_fadvise\fP(). .P Par exemple, depuis Linux 2.6.14, l'architecture ARM utilise l'appel système suivant : .P .in +4n .EX \fBlong arm_fadvise64_64(int \fP\fIfd\fP\fB, int \fP\fIadvice\fP\fB,\fP \fB loff_t \fP\fIoffset\fP\fB, loff_t \fP\fIsize\fP\fB);\fP .EE .in .P Ces détails dépendants de l'architecture sont généralement invisibles des applications grâce à la glibc et sa fonction d'enrobage \fBposix_fadvise\fP() qui utilise l'appel système adapté à l'architecture. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001. .P .\" of fadvise64_64() Le noyau est d'abord apparue dans Linux 2.5.60 ; l'appel système sous\-jacent est appelé \fBfadvise64\fP(). La prise en charge dans l'espace utilisateur est disponible depuis la glibc 2.2, à travers la fonction \fBposix_fadvise\fP(). .P .\" commit d3ac21cacc24790eb45d735769f35753f5b56ceb Depuis Linux 3.18, la gestion de l'appel système sous\-jacent est facultative, selon le positionnement de l'option de configuration \fBCONFIG_ADVISE_SYSCALLS\fP. .P The type of the \fIsize\fP argument was changed from \fIsize_t\fP to \fIoff_t\fP in POSIX.1\-2001 TC1. .SH NOTES Le contenu du cache du tampon du noyau peut être vidé à l'aide de l'interface \fI/proc/sys/vm/drop_caches\fP décrite dans \fBproc\fP(5). .P On peut obtenir un instantané des pages d'un fichier résidentes dans le cache du tampon en ouvrant un fichier, en le projetant avec \fBmmap\fP(2) et en appliquant \fBmincore\fP(2) à la projection. .SH BOGUES Before Linux 2.6.6, if \fIsize\fP was specified as 0, then this was interpreted literally as "zero bytes", rather than as meaning "all bytes through to the end of the file". .SH "VOIR AUSSI" \fBfincore\fP(1), \fBmincore\fP(2), \fBreadahead\fP(2), \fBsync_file_range\fP(2), \fBposix_fallocate\fP(3), \fBposix_madvise\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Philippe MENGUAL . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .