Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       setxattr, lsetxattr, fsetxattr - устанавливает расширенное значение атрибутов

БИБЛИОТЕКА

       Стандартная библиотека языка C (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);

ОПИСАНИЕ

       Расширенные  атрибуты  представляют  собой  пару  имя:значение  и  связываются  с  записями inode (файлы,
       каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам,  связанным  со  всеми
       записями  inode  в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно
       найти в xattr(7).

       Вызов setxattr() устанавливает  значение  value  расширенного  атрибута  с  именем,  заданным  в  name  и
       связанного  с  заданным  path  в  файловой  системе.  В  аргументе size задаётся размер (в байтах) value;
       допускается нулевой размер.

       Вызов lsetxattr()  идентичен  setxattr(),  за  исключением  случая  работы  с  символьными  ссылками;  он
       устанавливает расширенный атрибут на ссылке, а не на том файле, на который она указывает.

       Вызов  fsetxattr() идентичен setxattr(), отличием является то, что расширенный атрибут устанавливается на
       открытом файле, на который указывает fd (возвращаемом open(2)), а не на указанном в path.

       Имя расширенного атрибута представляет собой строку, заканчивающуюся  null.  Имя  name  включает  префикс
       пространства  имён;  их  может  быть  несколько, разрозненные пространства ассоциируются с разными inode.
       Значением  value  расширенного  атрибута  является  произвольный  кусок  текстовых  или  двоичных  данных
       определённой длины.

       По умолчанию (т. е., значение flags равно), если расширенный атрибут отсутствует, то он создаётся, а если
       он  существует,  то  заменяется  его  значение. Для изменения такой работы, в flags можно указать одно из
       следующих значений:

       XATTR_CREATE
              Выполнять только создание, если атрибут с таким именем существует — возвращать ошибку.

       XATTR_REPLACE
              Выполнять только замену, если атрибут с таким именем не существует — возвращать ошибку.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       В случае успеха возвращается ноль. В случае неудачи возвращается -1, а errno устанавливается для указания
       ошибки.

ОШИБКИ

       EDQUOT Предел по дисковой квоте; не хватает пространства для сохранения расширенного атрибута.

       EEXIST Указан XATTR_CREATE, но атрибут уже существует.

       ENODATA
              Указан XATTR_REPLACE, но атрибут не существует.

       ENOSPC Не хватает пространства для сохранения расширенного атрибута.

       ENOTSUP
              Неверный префикс пространства имён name.

       ENOTSUP
              Расширенные атрибуты не поддерживаются файловой системой или отключены.

       EPERM  Файл   помечен   как   неизменяемый   (immutable)   или   только    для    добавления    (смотрите
              FS_IOC_SETFLAGS(2const)).

       Также могут возникать ошибки, описанные в stat(2).

       ERANGE Размер name или value превышает ограничение, задаваемое файловой системой.

СТАНДАРТЫ

       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)

ПЕРЕВОД

       Русский перевод этой страницы руководства разработал(и)  Alexander  Golubev  <fatzer2@gmail.com>,  Azamat
       Hackimov   <azamat.hackimov@gmail.com>,   Hotellook,   Nikita   <zxcvbnm3230@mail.ru>,  Spiros  Georgaras
       <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov  <yuray@komyakino.ru>,  Иван  Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                  13 июня 2024 г.                                     setxattr(2)