home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | VERSIONS | CONFORMING TO | SEE ALSO | COLOPHON


LISTXATTR(2)                  Linux Programmer's Manual                  LISTXATTR(2)

NAME         top

       listxattr, llistxattr, flistxattr - list extended attribute names

SYNOPSIS         top

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

       ssize_t listxattr(const char *path, char *list, size_t size);
       ssize_t llistxattr(const char *path, char *list, size_t size);
       ssize_t flistxattr(int fd, char *list, size_t size);

DESCRIPTION         top

       Extended attributes are name:value pairs associated with inodes (files,
       directories, symbolic links, etc.).  They are extensions to the normal
       attributes which are associated with all inodes in the system (i.e., the
       stat(2) data).  A complete overview of extended attributes concepts can be
       found in attr(5).

       listxattr() retrieves the list of extended attribute names associated with the
       given path in the file system.  The list is the set of (null-terminated)
       names, one after the other.  Names of extended attributes to which the calling
       process does not have access may be omitted from the list.  The length of the
       attribute name list is returned.

       llistxattr() is identical to listxattr(), except in the case of a symbolic
       link, where the list of names of extended attributes associated with the link
       itself is retrieved, not the file that it refers to.

       flistxattr() is identical to listxattr(), only the open file referred to by fd
       (as returned by open(2)) is interrogated in place of path.

       A single extended attribute name is a simple null-terminated string.  The name
       includes a namespace prefix; there may be several, disjoint namespaces
       associated with an individual inode.

       An empty buffer of size zero can be passed into these calls to return the
       current size of the list of extended attribute names, which can be used to
       estimate the size of a buffer which is sufficiently large to hold the list of
       names.

Example

       The list of names is returned as an unordered array of null-terminated
       character strings (attribute names are separated by null bytes ('\0')), like
       this:

              user.name1\0system.name1\0user.name2\0

       Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using extended
       attributes, might return a list like this:

              system.posix_acl_access\0system.posix_acl_default\0

RETURN VALUE         top

       On success, a positive number is returned indicating the size of the extended
       attribute name list.  On failure, -1 is returned and errno is set
       appropriately.

       If the size of the list buffer is too small to hold the result, errno is set
       to ERANGE.

       If extended attributes are not supported by the file system, or are disabled,
       errno is set to ENOTSUP.

       The errors documented for the stat(2) system call are also applicable here.

VERSIONS         top

       These system calls have been available on Linux since kernel 2.4; glibc
       support is provided since version 2.3.

CONFORMING TO         top

       These system calls are Linux-specific.

SEE ALSO         top

       getfattr(1), setfattr(1), getxattr(2), open(2), removexattr(2), setxattr(2),
       stat(2), attr(5), symlink(7)

COLOPHON         top

       This page is part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

Linux                                 2001-12-01                         LISTXATTR(2)