#include <sys/types.h> #include <attr/xattr.h> ssize_t getxattr (const char *path, const char *name, void *value, size_t size); ssize_t lgetxattr (const char *path, const char *name, void *value, size_t size); ssize_t fgetxattr (int filedes, const char *name, void *value, size_t size);
getxattr получает значение value расширенного атрибута, идентифицированного по имени name и ассоциированного с указанным путем path в файловой системе. Длина атрибута value возвращается.
lgetxattr идентично getxattr, за исключением случаев символьной ссылки, когда рассматривается ссылка сама по себе, а не тот файл, на который она указывает.
fgetxattr идентично getxattr, только открываемый файл, на который указывает filedes (возвращаемый от open(2)) рассматривается вместо path.
Расширенный атрибут name является просто строкой, заканчивающейся NULL. Имя включает префикс пространства имен - их может быть несколько, разрозненные пространства ассоциируются с разными записями inode. Значением расширенного атрибута является произвольный кусок текстовых или двоичных данных определенной длины.
Пустой буфер с размером size, равным нулю может быть передан этим вызовам для возврата текущего размера указанного расширенного атрибута, что может быть использовано для определения размера буфера, который существенно больше, так как должен содержать значения, ассоцированные с расширенными атрибутами.
Интерфейс разработан так, чтобы можно было узнать размеры начального буфера и для дальнейшего увеличения буферов, когда возвращаемое значение указывает, что переданный буфер был слишком мал.
Если именованный атрибут не существует или если процесс не имеет прав доступа к этому атрибуту, то errno устанавливается в ENOATTR.
Если размер size буфера значения value слишком мал для хранения результата, то errno устанавливается в ERANGE.
Если расширенные атрибуты не поддерживаются файловой системой или отключены, то errno устанавливается в ENOTSUP.
Ошибки, документированные для системного вызова stat(2) также применимы и тут.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |