setxattr(2) System Calls Manual setxattr(2)

setxattr, lsetxattr, fsetxattr - stabilește valoarea unui atribut extins

Biblioteca C standard (libc, -lc)

#include <sys/xattr.h>
int setxattr(const char *path, const char *name,
              const void value[.size], size_t size, int flags);
int lsetxattr(const char *path, const char *name,
              const void value[.size], size_t size, int flags);
int fsetxattr(int fd, const char *name,
              const void value[.size], size_t size, int flags);

Atributele extinse sunt perechi nume:valoare asociate cu noduri-i (fișiere, directoare, legături simbolice etc.). Acestea sunt extensii ale atributelor normale care sunt asociate cu toate nodurile din sistem (de exemplu, datele stat(2)). O prezentare completă a conceptelor de atribute extinse poate fi găsită în xattr(7).

setxattr() stabilește valoarea atributului extins identificat prin name și asociat cu path dat în sistemul de fișiere. Argumentul size specifică dimensiunea (în octeți) a lui value; este permisă o valoare de lungime zero.

lsetxattr() este identic cu setxattr(), cu excepția cazului în care este vorba de o legătură simbolică, în care atributul extins este stabilit pe legătura însăși, nu pe fișierul la care se referă.

fsetxattr() este identic cu setxattr(), numai că atributul extins este stabilit pe fișierul deschis la care se face referire prin fd (așa cum este returnat de open(2)) în locul lui path.

Un nume de atribut extins este un șir de caractere cu terminație nulă. name include un prefix de spațiu de nume; pot exista mai multe spații de nume disjuncte asociate cu un nod-i individual. value al unui atribut extins este o bucată de date textuale sau binare arbitrare de lungimea specificată.

În mod implicit (adică flags este zero), atributul extins va fi creat dacă nu există, sau valoarea va fi înlocuită dacă atributul există deja. Pentru a modifica această semantică, în flags se poate specifica una dintre următoarele valori:

Efectuează o creare pură, care eșuează dacă atributul numit există deja.
Efectuează o operație de înlocuire pură, care eșuează dacă atributul numit nu există deja.

În caz de succes, se returnează zero. În caz de eșec, se returnează -1, iar errno este configurată pentru a indica eroarea.

Limitele cotelor de disc au făcut ca spațiul rămas să fie insuficient pentru a stoca atributul extins.
XATTR_CREATE was specified, and the attribute exists already.
XATTR_REPLACE was specified, and the attribute does not exist.
Spațiul rămas este insuficient pentru a stoca atributul extins.
Prefixul de spațiu de nume name nu este valid.
Atributele extinse nu sunt acceptate de sistemul de fișiere sau sunt dezactivate,
Fișierul este marcat ca fiind imuabil sau numai cu anexare. A se vedea ioctl_iflags(2).

În plus, pot apărea și erorile documentate în stat(2).

Dimensiunea lui name sau value depășește o limită specifică sistemului de fișiere.

Linux.

Linux 2.4, glibc 2.3.

getfattr(1), setfattr(1), getxattr(2), listxattr(2), open(2), removexattr(2), stat(2), symlink(7), xattr(7)

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

2 mai 2024 Pagini de manual de Linux 6.8