Sous-routine getea

Objectif

Lit la valeur d'un attribut étendu.

Syntaxe

#include <sys/ea.h>

ssize_t getea(const char *path, const char *name,
        void *value, size_t size);
ssize_t fgetea(int filedes, const char *name, void *value, size_t size);
ssize_t lgetea(const char *path, const char *name,
        void *value, size_t size);

Descriptif

Les attributs étendus sont des paires nom-valeur associées aux objets du système de fichiers (tels que des fichiers, des répertoires et des 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 de nom d'attribut étendu avec le préfixe de huit caractères "(0xF8) SYSTEM (0xF8)". Le préfixe "(0xF8) SYSTEM (0xF8)" est réservé au système uniquement.

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

La sous-routine getea extrait la valeur de l'attribut étendu identifié par name et associé au chemin indiqué dans le système de fichiers. La longueur de l'attribut valeur est renvoyée. La sous-routine fgetea est identique à getea, sauf qu'elle utilise un descripteur de fichier au lieu d'un chemin. La sous-routine lgetea est identique à getea, sauf que dans le cas d'un lien symbolique, le lien lui-même est interrogé plutôt que le fichier auquel il fait référence.

Paramètres

Article Descriptif
path Nom de chemin du fichier.
nom Nom de l'attribut étendu. Un nom d'attribut étendu est une chaîne à terminaison NULL.
value Pointeur vers une mémoire tampon dans laquelle l'attribut sera stocké. La valeur d'un attribut étendu est un flot d'octets opaque de longueur spécifiée.
Taille Taille de la mémoire tampon. Si la taille est 0, getea renvoie la taille actuelle de l'attribut étendu nommé, qui peut être utilisée pour estimer si la taille d'une mémoire tampon est suffisamment grande pour contenir la valeur associée à l'attribut étendu.
filedes Un descripteur de fichier pour le fichier.

Valeurs renvoyées

Si la sous-routine getea aboutit, un nombre non négatif est renvoyé pour indiquer la taille de la valeur de l'attribut étendu. 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 de lecture sur le fichier de base ou des privilèges de liste de contrôle d'accès appropriés pour l'attribut nommé read.
EFAULT Une adresse incorrecte a été transmise pour chemin, nomou valeur.
FORMAT électronique Le système de fichiers est capable de prendre en charge les EE, mais les EE sont désactivées.
EINVAL Un nom de type chemin ne doit pas être utilisé (tel que zml / file, . et ..).
ENAMETOOLONG La valeur path ou name est trop longue.
ENATTR L'attribut nommé n'existe pas ou le processus n'a pas accès à cet attribut.
ERANGE La taille de la mémoire tampon de valeur est trop petite pour contenir le résultat.
ENOTSUP Les attributs étendus ne sont pas pris en charge par le système de fichiers.

Les erreurs documentées pour l'appel système stat (2) sont également applicables ici.