Главная » 2017 » Ноябрь » 24 » man 2 setxattr
05:21
man 2 setxattr

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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



ОБЗОР


#include <sys/types.h>
#include <sys/xattr.h>

int setxattr(const char *path, const char *name,
const void *value, size_t size, int flags);
int lsetxattr(const char *path, const char *name,
const void *value, size_t size, int flags);
int fsetxattr(int fd, const char *name,
const void *value, 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, но атрибут уже существует.

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

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

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



ВЕРСИИ


Данные системные вызовы доступны в Linux начиная с ядра версии 2.4; поддержка в glibc
появилась в версии 2.3.



СООТВЕТСТВИЕ СТАНДАРТАМ


Данные системные вызовы есть только в Linux.



СМОТРИТЕ ТАКЖЕ


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



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 404 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar