LISTXATTR(2)

NOM
listxattr, llistxattr, flistxattr - Lister les noms des attributs étendus

SYNOPSIS
#include <sys/types.h>
#include <sys/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);

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.

  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 :
    user.name1\0system.name1\0user.name2\0

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 :
    system.posix_acl_access\0system.posix_acl_default\0

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.

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.

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.

CONFORMITÉ
Ces appels système sont spécifiques à Linux.

VOIR AUSSI
getfattr(1), setfattr(1), getxattr(2), open(2), removexattr(2), setxattr(2), stat(2), attr(5), symlink(7)

COLOPHON
Cette page fait partie de la publication 3.70 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
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 à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».