Sous-routine listea

Objectif

Répertorie les attributs étendus associés à un fichier.

Syntaxe

#include <sys/ea.h>

ssize_t listea(const char *path, char *list, size_t size);
ssize_t flistea (int filedes, char *list, size_t size);
ssize_t llistea (const char *path, char *list, size_t size);

Descriptif

Les attributs étendus sont les paires nom-valeur associées aux objets du système de fichiers (tels que les fichiers, les répertoires et les liens symboliques). Il s'agit d'extensions des attributs normaux associés à tous les objets du système de fichiers (c'est-à-dire les données Stat (2) ).

Ne définissez pas un nom d'attribut étendu avec huit caractères préfixe "(0xF8) SYSTEM (0xF8)". Le préfixe "(0xF8) SYSTEM (0xF8)" est réservé à l'utilisation du système.

Remarque: Le préfixe 0xF8 représente un caractère non imprimable.

La sous-routine Listea extrait la liste des noms d'attributs étendus associés à Chemin dans le système de fichiers. Le Liste est l'ensemble de noms (NULL-terminés), l'un après l'autre. Les noms des attributs étendus auxquels le processus appelant n'a pas accès peuvent être omis de la liste. La longueur de la liste des noms d'attribut est renvoyée. Le sous-programme Flistea est identique à Listea, sauf qu'il prend un descripteur de fichier au lieu d'un chemin. Le sous-programme Llistea est identique à Listea, sauf dans le cas d'un lien symbolique, le lien lui-même est interrogé, et non le fichier auquel il fait référence.

Un tampon vide de taille 0 peut être transmis dans ces appels pour renvoyer la taille actuelle de la liste des noms d'attributs étendus, qui peut être utilisée pour estimer si la taille d'une mémoire tampon est suffisamment grande pour contenir la liste des noms.

Paramètres

Article Descriptif
path Nom de chemin du fichier.
List Pointeur vers une mémoire tampon dans laquelle la liste des attributs sera stockée.
Taille Taille de la mémoire tampon.
Fichierdes Un descripteur de fichier pour le fichier.

Valeurs renvoyées

Si la sous-routine Listea aboutit, un nombre non-égatif est renvoyé, ce qui indique la longueur en octets de la liste des noms d'attribut. En cas d'échec, -1 est renvoyé et errno est défini en conséquence.

Codes d'erreur

Article Descriptif
EACCES L'appelant ne dispose pas des droits d'accès en lecture sur le fichier de base ou n'a pas les droits ACL appropriés pour l'attribut nommé Lire.
EDÉFAUT Une adresse incorrecte a été transmise pour Chemin ou Liste.
EFORMAT Le système de fichiers peut prendre en charge les EE, mais les EE sont désactivées.
ENOTSUP Les attributs étendus ne sont pas pris en charge par le système de fichiers.
ERANGE La taille de la mémoire tampon de liste est trop petite pour contenir le résultat.