1. NOM▲
listxattr, llistxattr, flistxattr - Lister les noms des attributs étendus
2. SYNOPSIS ▲
.fam C
#include <sys/types.h>
#include <attr/xattr.h>
ssize_t listxattr (
const
char
*
chemin, char
*
liste, size_t taille);
ssize_t llistxattr (
const
char
*
chemin, char
*
liste, size_t taille);
ssize_t flistxattr (
int
descripteur, char
*
liste, size_t taille);
.fam T
3. DESCRIPTION ▲
Les attributs étendus sont des paires nom:valeur associées aux inœuds (fichiers, répertoires, liens symboliques, etc). Ce sont des extensions des attributs normaux qui sont associés avec tous les inœuds du système (les informations renvoyées par stat(2)). Une description complète des concepts d'attributs étendus est disponible dans attr(5).
listxattr() récupère la liste des attributs étendus associés avec le chemin indiqué du système de fichier. La liste récupérée est placée dans list, un tampon alloué par l'appelant, dont la taille (en octets) est indiquée dans l'argument size. La liste est l'ensemble des noms (terminés par NULL), l'un après l'autre. Les noms des attributs étendus auxquels le processus appelant n'a pas accès peuvent être omis dans la liste. La longueur de la liste de noms d'attributs est renvoyée.
llistxattr() est identique à listxattr(), sauf dans le cas d'un lien symbolique, où il renvoie la liste des noms des attributs associés au lien lui-même et non au fichier auquel il se réfère.
flistxattr() est identique à listxattr(), sauf que le fichier ouvert associé au descripteur (fourni par open(2)) est interrogé à la place du chemin.
Le nom d'un attribut étendu est une simple chaîne terminée par un octet nul. Le nom inclut un préfixe d'espace de noms - il peut y avoir plusieurs espaces de noms disjoints associés avec un inœud donné.
Un tampon vide, de taille nulle, peut être transmis à ses appels, pour qu'ils renvoient la taille actuelle de la liste des noms d'attributs étendus, pour estimer la taille de tampon nécessaire pour contenir la liste des noms.
3.1. Exemple ▲
La liste est noms est renvoyée sous forme de table de chaînes de caractères terminées par un octet nul, sans ordre particulier, les noms des attributs étant séparés par un caractère nul, ainsi : .fam C
user.name1\0system.name1\0user.name2\0
.fam T
Les systèmes comme ext2, ext3, et XFS qui implémentent les ACLs POSIX en utilisant les attributs étendus peuvent renvoyer une liste comme celle-ci : .fam C
system.posix_acl_access\0system.posix_acl_default\0
.fam T
4. VALEUR RENVOYÉE ▲
S'ils réussissent, ces appels renvoient un nombre non négatif correspondant à la taille de la liste de noms d'attributs. En cas d'échec, ils renvoient -1 et remplissent errno avec un code d'erreur.
5. ERREURS ▲
- ENOTSUP
Les attributs étendus ne sont pas pris en charge par le système de fichiers ou sont désactivés. - ERANGE
La taille du tampon pour le tampon liste est trop petite pour contenir le résultat.
De plus, les erreurs documentées dans stat(2) peuvent aussi survenir.
6. VERSIONS ▲
Ces appels système sont disponibles sous Linux depuis le noyau 2.4 ; la glibc les prend en charge depuis la version 2.3.
7. CONFORMITÉ ▲
Ces appels système sont spécifiques à Linux.
8. VOIR AUSSI ▲
getfattr(1), setfattr(1), getxattr(2), open(2), removexattr(2), setxattr(2), stat(2), attr(5), symlink(7)
9. COLOPHON ▲
Cette page fait partie de la publication 3.52 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/.
10. 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/>.
Christophe Blaess <http://www.blaess.fr/christophe/> (2003-2008).
Veuillez signaler toute erreur de traduction en écrivant à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».