.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2017 David Howells .\" .\" Derived from the stat.2 manual page: .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" Parts Copyright (c) 1995 Nicolai Langfeldt (janl@ifi.uio.no), 1/1/95 .\" and Copyright (c) 2006, 2007, 2014 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH statx 2 "1 juin 2023" "Pages du manuel de Linux 6.05.01" .SH NOM statx \- Afficher l'état d'un fichier (étendu) .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#define _GNU_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#include \fP /* Définitions des constantes \fBAT_*\fP */ \fB#include \fP .PP \fBint statx(int \fP\fIdirfd\fP\fB, const char *restrict\fP\fInom_chemin\fP\fB, int\fP\fIflags\fP\fB,\fP \fB unsigned int \fP\fImask\fP\fB, struct statx *restrict \fP\fIstatxbuf\fP\fB);\fP .fi .SH DESCRIPTION Cette fonction renvoie des informations sur un fichier, le stockant dans le tampon pointé par \fIstatxbuff\fP. Le tampon renvoyé est une structure du type suivant\ : .PP .in +4n .EX struct statx { __u32 stx_mask; /* Masque d'octets indiquant les champs remplis */ __u32 stx_blksize; /* Taille de bloc pour les E/S du système de fichiers */ __u64 stx_attributes; /* Indicateurs d'attribut de fichier supplémentaire */ __u32 stx_nlink; /* Nombre de liens directs */ __u32 stx_uid; /* UID du propriétaire */ __u32 stx_gid; /* GID du propriétaire */ __u16 stx_mode; /* Type de fichier et mode */ __u64 stx_ino; /* Numéro d'inœud */ __u64 stx_size; /* Taille totale en octets */ __u64 stx_blocks; /* Nombre de blocs de 512 o alloués */ __u64 stx_attributes_mask; /* Masque pour montrer ce qui est pris en charge dans stx_attributes */ \& /* Les champs suivants sont des fichiers d'horodatage */ struct statx_timestamp stx_atime; /* Dernier accès */ struct statx_timestamp stx_btime; /* Création */ struct statx_timestamp stx_ctime; /* Dernier changement d'état */ struct statx_timestamp stx_mtime; /* Dernière modification */ \& /* Si ce fichier représente un périphérique, alors les deux champs suivants contiennent l'identifiant du périphérique */ __u32 stx_rdev_major; /* Identifiant majeur */ __u32 stx_rdev_minor; /* Identifiant mineur */ \& /* Les deux champs suivants contiennent l'identifiant du périphérique contenant le système de fichier où est situé le fichier */ __u32 stx_dev_major\ ; /* ID majeur */ __u32 stx_dev_minor\ ; /* ID mineur */ \& __u64 stx_mnt_id; /* ID de montage */ \& /* Restrictions d'alignement d'E/S directes */ __u32 stx_dio_mem_align; __u32 stx_dio_offset_align; }; .EE .in .PP Les horodatages de fichier sont des structures du type suivant\ : .PP .in +4n .EX struct statx_timestamp { __s64 tv_sec; /* Secondes depuis l'Epoch (temps UNIX) */ __u32 tv_nsec; /* Nanosecondes depuis tv_sec */ }; .EE .in .PP (Notez que l'espace réservé et le remplissage sont ommis.) .SS "Invoking statx\fR():\fP" Pour accéder à l'état d'un fichier, aucune autorisation n'est requise sur le fichier lui\-même, mais dans le cas de \fBstatx\fP() avec un nom de chemin, la permission d'exécution (recherche) est requise sur tous les répertoires du \fInom_chemin\fP qui mènent au fichier. .PP \fBstatx\fP() utilise \fInom_chemin\fP, \fIdirfd\fP, et \fIflags\fP pour identifier le fichier cible d'une des façons suivantes\ : .TP Un nom de chemin absolu Si \fInom_chemin\fP commence avec une barre oblique (slash), alors c'est un nom de chemin absolu qui identifie le fichier cible. Dans ce cas, \fIdirfd\fP est ignoré. .TP Nom de chemin relatif Si \fInom_chemin\fP est une chaîne qui commence par un caractère autre qu'une barre oblique et que \fIdirfd\fP est \fBAT_FDCWD\fP, alors \fInom_chemin\fP est un chemin relatif qui est interprété comme étant relatif au répertoire courant du processus appelant. .TP Un répertoire de nom de chemin relatif Si \fInom_chemin\fP est une chaîne qui commence par un caractère autre qu'une barre oblique et \fIdirfd\fP est un descripteur de fichier qui réfère à un répertoire, alors \fInom_chemin\fP est un nom de chemin relatif qui est interprété relativement au répertoire auquel fait référence \fIdirfd\fP. (Consulter \fBopenat\fP(2) pour une explication de son utilité.) .TP Avec un descripteur de fichier Si \fInom_chemin\fP est une chaîne vide et que le drapeau \fBAT_EMPTY_PATH\fP est spécifié dans \fIflags\fP (voir ci\-dessous), alors le fichier cible est celui auquel fait référence le descripteur de fichier \fIdirfd\fP. .PP \fIflags\fP peut être utilisé pour influencer une recherche par nom de chemin. Une valeur pour \fIflags\fP est construite par une association OU binaire de zéro ou plus des constantes suivantes\ : .TP \fBAT_EMPTY_PATH\fP .\" commit 65cfc6722361570bfe255698d9cd4dccaf47570d Si \fInom_chemin\fP est une chaîne vide, opérer sur le fichier référencé par \fIdirfd\fP (qui peut avoir été obtenu en utilisant le drapeau \fBO_PATH\fP de \fBopen\fP(2)). Dans ce cas, \fIdirfd\fP peut faire référence à tout type de fichier, et pas seulement à un répertoire. .IP Si \fIdirfd\fP est \fBAT_FDCWD\fP, l'appel opère sur le répertoire de travail actuel. .TP \fBAT_NO_AUTOMOUNT\fP Ne pas attacher automatiquement le composant terminal (nom de base) de \fInom_chemin\fP s'il s'agit d'un répertoire qui est un point de montage automatique. Cela permet à l'appelant de rassembler les attributs d'un point de montage automatique (plutôt que l'emplacement qu'il attacherait). Ce drapeau n'a aucun effet si le point de montage est déjà attaché. .IP Le drapeau \fBAT_NO_AUTOMOUNT\fP peut être utilisé dans des outils qui analysent les répertoires pour éviter un montage automatique en masse d'un répertoire contenant des points de montage automatique. .IP \fBstat\fP(2), \fBlstat\fP(2) et \fBfstatat\fP(2) agissent tous comme si \fBAT_NO_AUTOMOUNT\fP a été défini. .TP \fBAT_SYMLINK_NOFOLLOW\fP Si \fInom_chemin\fP est un lien symbolique, ne pas le déréférencer, mais renvoyer des informations sur le lien lui\(hymême, comme le fait \fBlstat\fP(2). .PP \fIflags\fP peut aussi être utilisé pour contrôler quelle sorte de synchronisation le noyau effectuera lors d'une demande d'un fichier sur un système de fichiers distant. Cela est fait par l'utilisation d'un \fIOU\fP binaire d'une des valeurs suivantes\ : .TP \fBAT_STATX_SYNC_AS_STAT\fP Faire tout ce que fait \fBstat\fP(2). C'est l'option par défaut et c'est très spécifique au système de fichiers. .TP \fBAT_STATX_FORCE_SYNC\fP Forcer les attributs à être synchronisés avec le serveur. Cela peut nécessiter qu'un système de fichiers en réseau réalise une réécriture de données pour avoir des horodatages corrects. .TP \fBAT_STATX_DONT_SYNC\fP Ne rien synchroniser, mais prendre plutôt ce que le système a mis en cache si possible. Cela peut signifier que les informations renvoyées sont approximatives, mais, sur un système de fichiers en réseau, cela peut ne pas impliquer d'aller\-retour vers le serveur, même si aucun bail n'est détenu. .PP L'argument \fImask\fP à \fBstatx\fP() est utilisé pour dire au noyau quels champs intéressent l'appelant. \fImask\fP est une combinaison liée par un \fIOU\fP binaire des constantes suivantes\ : .PP .in +4n .TS lB l. STATX_TYPE Nécessite stx_mode et S_IFMT STATX_MODE Nécessite stx_mode et \(tiS_IFMT STATX_NLINK Nécessite stx_nlink STATX_UID Nécessite stx_uid STATX_GID Nécessite stx_gid STATX_ATIME Nécessite stx_atime STATX_MTIME Nécessite stx_mtime STATX_CTIME Nécessite stx_ctime STATX_INO Nécessite stx_ino STATX_SIZE Nécessite stx_size STATX_BLOCKS Nécessite stx_blocks STATX_BASIC_STATS [Tous ceux ci\-dessus] STATX_BTIME Nécessite stx_btime STATX_ALL Identique à STATX_BASIC_STATS | STATX_BTIME. La commande est obsolète et ne devrait pas être utilisée. STATX_MNT_ID Nécessite stx_mnt_id (depuis Linux\ 5.8) STATX_DIOALIGN Nécessite stx_dio_mem_align et stx_dio_offset_align (depuis Linux\ 6.1\ ; prise en charge selon le système de fichiers) .TE .in .PP Remarquez que, en général, le noyau \fIne rejette pas\fP des valeurs dans \fImask\fP autres que celles ci\-dessus. (Pour une exception, voir \fBEINVAL\fP dans les erreurs.) Au lieu de cela, il informe simplement l'appelant des valeurs prises en charge par ce noyau et ce système de fichiers à l'aide du champ \fIstatx.stx_mask\fP. Par conséquent, \fIne pas se contenter\fP de mettre \fImask\fP à \fBUINT_MAX\fP (tous les bits sont mis), car un ou plusieurs bits peuvent, à l'avenir, être utilisés pour spécifier une extension au tampon. .SS "Information renvoyée" L'information d'état pour le fichier cible est renvoyée dans la structure \fIstatx\fP pointée par \fIstatxbuf\fP. On y trouve \fIstx_mask\fP qui indique quelles autres informations ont été renvoyées. \fIstx_mask\fP a le même format que l'argument \fImask\fP et les bits y sont définis pour indiquer quels champs ont été remplis. .PP Il convient de noter que le noyau peut renvoyer des champs qui n'ont pas été demandés et peut ne pas renvoyer des champs qui ont été demandés, en fonction de ce que le système de fichiers sous\-jacent prend en charge. (Les champs qui reçoivent des valeurs alors qu'ils ne sont pas demandés peuvent être simplement ignorés.) Dans les deux cas, \fIstx_mask\fP ne sera pas égal à \fImask\fP. .PP Si un système de fichiers ne prend pas en charge un champ ou qu'il y a une valeur non représentable (par exemple, un fichier d'un type exotique), alors le bit masqué correspondant à ce champ sera effacé de \fIstx_mask\fP même si l'utilisateur l'a demandé et une valeur fictive sera remplie à des fins de compatibilité s'il en existe une (par exemple un UID ou un GID fictifs pourront être indiqués pour monter sous certaines circonstances). .PP Un système de fichiers peut également remplir des champs que l'appelant n'a pas demandé s'il dispose de valeurs pour ces champs et si l'information est disponible sans coût supplémentaire. Si cela se produit, les bits correspondants seront mis dans \fIstx_mask\fP. .PP .\" Background: inode attributes are modified with i_mutex held, but .\" read by stat() without taking the mutex. \fINote\fP\ : pour la performance et des raisons de simplicité, des champs différents dans la structure \fIstatx\fP devraient contenir les informations d'état des divers moments de l'exécution de l'appel système. Par exemple, si \fIstx_mode\fP ou \fIstx_uid\fP est changé par un autre processus par un appel \fBchmod\fP(2) ou \fBchown\fP(2), \fBstat\fP() devrait renvoyer l'ancien \fIstx_mode\fP avec le nouveau \fIstx_uid\fP, ou l'ancien \fIstx_uid\fP avec le nouveau \fIstx_mode\fP. .PP À part ceux du \fIstx_mask\fP (qui est décrit ci\-dessus), les champs de la structure \fIstatx\fP sont\ : .TP \fIstx_blksize\fP La taille de bloc «\ préférée\ » pour des entrées\-sorties du système de fichiers efficaces. (Des écritures par blocs plus petits peuvent entraîner un cycle lecture/modification/réécriture inefficace.) .TP \fIstx_attributes\fP Informations supplémentaires sur l'état du fichier (voir ci\-dessous pour plus d'informations). .TP \fIstx_nlink\fP Le nombre de liens directs sur un fichier. .TP \fIstx_uid\fP Ce champ contient l'UID du propriétaire du fichier. .TP \fIstx_gid\fP Ce champ contient l'identifiant du groupe propriétaire du fichier. .TP \fIstx_mode\fP Le mode et type de fichier. Voir \fBinode\fP(7) pour plus de détails. .TP \fIstx_ino\fP Le numéro d'inœud du fichier. .TP \fIstx_size\fP La taille du fichier (s'il s'agit d'un fichier ordinaire ou d'un lien symbolique) en octets. La taille d'un lien symbolique est la longueur du chemin d'accès qu'il vise, sans octet NULL final. .TP \fIstx_blocks\fP Le nombre de blocs de 512\ octets alloués au fichier sur le support. (Cette valeur peut être inférieure à \fIst_size\fP/512 si le fichier a des trous.) .TP \fIstx_attributes_mask\fP Un masque indiquant quels bits dans \fIstx_attributes\fP sont pris en charge par le VFS et le système de fichiers. .TP \fIstx_atime\fP L'horodatage du dernier accès au fichier. .TP \fIstx_btime\fP L'horodatage de création du fichier. .TP \fIstx_ctime\fP L'horodatage du dernier changement d'état du fichier. .TP \fIstx_mtime\fP L'horodatage de la dernière modification du fichier. .TP \fIstx_dev_major\fP et \fIstx_dev_minor\fP Le périphérique sur lequel réside ce fichier (inœud). .TP \fIstx_rdev_major\fP et \fIstx_rdev_minor\fP Le périphérique que ce fichier (inœud) représente si le fichier est de type périphérique bloc ou caractère. .TP \fIstx_mnt_id\fP .\" commit fa2fcf4f1df1559a0a4ee0f46915b496cc2ebf60 L'identifiant du montage contenant le fichier. C'est le même numéro que celui rapporté par \fBname_to_handle_at\fP(2) et qui correspond au numéro dans le premier champ d'un des enregistrements dans \fI/proc/self/mountinfo\fP. .TP \fIstx_dio_mem_align\fP L'alignement (en octets) est requis pour les tampons de mémoire utilisateur pour des E/S directes (\fBO_DIRECT\fP) sur ce fichier, ou 0 si les E/S directes ne sont pas prises en charge sur ce fichier. .IP \fBSTATX_DIOALIGN\fP (\fIstx_dio_mem_align\fP et \fIstx_dio_offset_align\fP) est pris en charge sur les périphériques bloc depuis Linux\ 6.1. La prise en charge des fichiers ordinaires varie selon le système de fichiers\ ; il est pris en charge par ext4, f2fs et xfs depuis Linux\ 6.1. .TP \fIstx_dio_offset_align\fP L'alignement (en octets) est requis pour les décalage sdes fichiers et la longueur des segments d'E/S pour des E/S directes (\fBO_DIRECT\fP) sur ce fichier, ou 0 si les E/S directes ne sont pas prises en charge sur ce fichier. Il sera uniquement différent de zéro si \fIstx_dio_mem_align\fP est différent de zéro et vice\-versa. .PP .\" Pour plus d'information sur les champs ci\-dessus, voir \fBinode\fP(7). .SS "Attributs de fichier" Le champ \fIstx_attributes\fP contient un ensemble de drapeaux liés par un \fIOU\fP binaire qui indiquent les attributs additionnels du fichier. Veuillez noter que tout attribut qui n'est pas indiqué comme pris en charge par \fIstx_attributes_mask\fP n'a pas de valeur utilisable ici. Les bits dans \fIstx_attributes_mask\fP correspondent bit par bit à \fIstx_attributes\fP. .PP Les drapeaux sont de la forme suivante\ : .TP \fBSTATX_ATTR_COMPRESSED\fP Le fichier est compressé par le système de fichiers et son accès peut nécessiter des ressources supplémentaires. .TP \fBSTATX_ATTR_IMMUTABLE\fP Le fichier ne peut pas être modifié\ : il ne peut être ni effacé, ni renommé, aucun lien direct ne peut être créé vers ce fichier et aucune donnée ne peut y être écrite. Consulter \fBchattr\fP(1). .TP \fBSTATX_ATTR_APPEND\fP Le fichier ne peut être ouvert qu'en mode ajout pour l'écriture. L'écriture par accès aléatoire n'est pas permise. Voir \fBchattr\fP(1). .TP \fBSTATX_ATTR_NODUMP\fP Le fichier n'est pas candidat à une sauvegarde lorsqu'un programme de sauvegarde tel que \fBdump\fP(8) est lancé. Voir \fBchattr\fP(1). .TP \fBSTATX_ATTR_ENCRYPTED\fP Une clé est requise pour que le fichier soit chiffré par le système de fichiers. .TP \fBSTATX_ATTR_VERITY\fP (depuis Linux 5.5) .\" commit 3ad2522c64cff1f5aebb987b00683268f0cc7c29 Le fichier a fs\-verity d'activé. Il est impossible d'y écrire et toutes les lectures seront vérifiées par rapport à un hachage cryptographique qui couvre l'ensemble du fichier (par exemple, grâce à un arbre de Merkel). .TP \fBSTATX_ATTR_DAX\fP (depuis Linux 5.8) Le fichier est dans l'état DAX (accès direct au processeur). L'état DAX essaie de minimiser les effets du cache du logiciel à la fois pour les mappages de mémoire et les Entrées/Sorties de ce fichier. Cela nécessite un système de fichiers qui a été configuré pour prendre en charge DAX. .IP DAX suppose généralement que tous les accès se font à travers des instructions de chargement/stockage du processeur, ce qui peut minimiser la surcharge pour les petits accès, mais peut avoir un effet négatif sur l'utilisation du processeur pour les transferts importants. .IP Le fichier d'E/S est fait directement vers/depuis les tampons de l'espace utilisateur et les E/S mappées en mémoire peuvent être effectuées avec des mappages directs en mémoire qui contournent le cache de page du noyau. .IP Alors que la propriété DAX a tendance à entraîner un transfert synchrone des données, cela ne procure pas les mêmes garanties que le drapeau \fBO_SYNC\fP (voir \fBopen\fP(2)), où les données et les métadonnées sont transférées ensemble. .IP Un fichier DAX devrait accepter d'être mappé avec le drapeau \fBMAP_SYNC\fP, ce qui permet à un programme d'utiliser les instructions de vidage du cache du processeur pour faire persister les opérations de stockage du processeur sans un \fBfsync\fP(2) explicite. Voir \fBmmap\fP(2) pour plus d'informations. .TP \fBSTATX_ATTR_MOUNT_ROOT\fP (depuis Linux 5.8) .\" commit 80340fe3605c0e78cfe496c3b3878be828cfdbfe Ce fichier est la racine d'un montage' .SH "VALEUR RENVOYÉE" En cas de succès, zéro est renvoyé. En cas d'erreur, \fB\-1\fP est renvoyé et \fIerrno\fP est définie pour préciser l'erreur. .SH ERREURS .TP \fBEACCES\fP La permission de parcours est refusée pour un des répertoires contenu dans le chemin \fInom_chemin\fP. (Consultez aussi \fBpath_resolution\fP(7).) .TP \fBEBADF\fP \fIpathname\fP est relatif mais \fIdirfd\fP n'est ni \fBAT_FDWCD\fP ni un descripteur de fichier valable. .TP \fBEFAULT\fP \fInom_chemin\fP ou \fIstatxbuf\fP est NULL ou pointe en dehors de l'espace d'adressage accessible. .TP \fBEINVAL\fP \fIflags\fP contient un attribut non valable. .TP \fBEINVAL\fP Drapeau réservé indiqué dans \fImask\fP. (Actuellement, il y a un tel drapeau, désigné par la constante \fBSTATX_RESERVED\fP, avec la valeur 0x80000000U.) .TP \fBELOOP\fP Trop de liens symboliques rencontrés dans le nom de chemin. .TP \fBENAMETOOLONG\fP \fInom_chemin\fP est trop long. .TP \fBENOENT\fP Un composant du chemin \fInom_chemin\fP n'existe pas, ou \fInom_chemin\fP est une chaîne vide et \fBAT_EMPTY_PATH\fP n'était pas spécifié dans \fIflags\fP. .TP \fBENOMEM\fP Pas assez de mémoire (mémoire noyau). .TP \fBENOTDIR\fP Un composant du préfixe du chemin \fInom_chemin\fP n'est pas un répertoire ou \fInom_chemin\fP est relatif, et le descripteur de fichier \fIdirfd\fP est associé à un fichier, pas à un répertoire. .SH STANDARDS Linux. .SH HISTORIQUE Linux 4.11, glibc 2.28. .SH "VOIR AUSSI" \fBls\fP(1), \fBstat\fP(1), \fBaccess\fP(2), \fBchmod\fP(2), \fBchown\fP(2), \fBname_to_handle_at\fP(2), \fBreadlink\fP(2), \fBstat\fP(2), \fButime\fP(2), \fBproc\fP(5), \fBcapabilities\fP(7), \fBinode\fP(7), \fBsymlink\fP(7) .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 bubu . .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 .