setxattr

Autres langues

Langue: fr

Version: 18 juillet 2003 (openSuse - 09/10/07)

Section: 2 (Appels système)

NOM

setxattr, lsetxattr, fsetxattr - Fixer les attributs étendus.

SYNOPSIS


#include <sys/types.h>

#include <attr/xattr.h>



int setxattr (const char *chemin, const char *nom,

                      const void *valeur, size_t taille, int options);

int lsetxattr (const char *chemin, const char *nom,

                      const void *valeur, size_t taille, int options);

int fsetxattr (int descripteur, const char *nom,

                      const void *valeur, size_t taille, int options);

DESCRIPTIONLes attributs étendus sont des paires

nom:valeur associées aux i-noeuds (fichiers, répertoires, liens symboliques, etc). Ce sont des extensions des attributs normaux qui sont associés avec tous les i-noeuds du système (les informations renvoyées par stat(2). Une description complète des concepts d'attributs étendus est disponible dans attr(5).

setxattr écrit la valeur dans l'attribut étendu identifié par le nom et associé avec le chemin dans le système de fichiers La taille de la valeur doit être spcifiée

lsetxattr est identique à setxattr, sauf dans le cas d'un lien symbolique, où il traite le lien lui-même et non le fichier qu'il vise.

fsetxattr est identique à setxattr, seulement on écrit l'attribut du fichier ouvert indiqué par le descripteur (renvoyé par open(2)) plutôt que par un chemin.

Le nom d'un attribut étendu est une simple chaîne terminée par un caractère nul. Le nom inclut un préfixe d'espace de noms - il peut y avoir plusieurs espaces de noms disjoints associés avec un i-noeud donné. La valeur d'un attribut étendu est un bloc de données littérales ou binaires d'une longueur donnée.

Le paramètre option permet d'affiner la sémantique de l'opétation. XATTR_CREATE indique une création pure, avec un échec si l'attribut existe déjà. XATTR_REPLACE indique un remplacement, échouant si l'attribut n'existe pas. Par défaut (pas d'option), l'attribut sera créé s'il le faut, ou remplacé s'il existe déjà.

VALEUR RENVOYÉE

S'ils réussissent, ces appels renvoient un nombre positif correspondant à la taille de la valeur de l'attribut étendu. En cas d'échec, ils renvoient -1 et remplissent errno avec un code d'erreur.

Si XATTR_CREATE est indiqué et que l'attribut existe, errno contiendra EEXIST. Si XATTR_REPLACE est demandé et si l'attribut n'existe pas errno sera remplis avec ENOATTR.

S'il n'y a pas assez d'espace pour stocker l'attribut étendu, errno vaudra ENOSPC, ou EDQUOT si le problème vient du système de quotas.

Si les attributs étendus ne sont pas suportés par le système de fichiers ou le noyau errno contient ENOTSUP.

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

AUTEURS

Andreas Gruenbacher, <a.gruenbacher@computer.org> et l'équipe de développement SGI XFS, <linux-xfs@oss.sgi.com>. Envoyez les rapports de bogues et les commentaires (en anglais) à ces adresses.

VOIR AUSSI

getfattr(1), setfattr(1), open(2), stat(2), getxattr(2), listxattr(2), removexattr(2), attr(5)

TRADUCTION

Christophe Blaess, 1996-2003.