REMOVEXATTR(2)

ИМЯ
removexattr, lremovexattr, fremovexattr - удаление расширенных атрибутов

ОБЗОР
#include <sys/types.h>
#include <sys/xattr.h>

int removexattr(const char *path, const char *name);
int lremovexattr(const char *path, const char *name);
int fremovexattr(int fd, const char *name);

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

Вызов removexattr() удаляет расширенный атрибут с именем, заданным в name и связанный с заданным path в файловой системе.

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

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

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается ноль. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.

ОШИБКИ

ENOATTR
    Атрибут с таким именем не существует (ENOATTR определена как синоним ENODATA в <attr/xattr.h>).

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

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

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

СООТВЕТСТВИЕ СТАНДАРТАМ
Данные системные вызовы есть только в Linux.

СМОТРИТЕ ТАКЖЕ
getfattr(1), setfattr(1), getxattr(2), listxattr(2), open(2), setxattr(2), stat(2), symlink(7), xattr(7)