ATTR_LIST - Online Linux Manual PageSection : 3
Updated : Extended Attributes
Source : Dec 2005
Note : XFS Compatibility API

NAMEattr_list, attr_listf − list the names of the user attributes of a filesystem object

C SYNOPSIS#include <attr/attributes.h> int attr_list (const char ∗path, char ∗buffer, " const int buffersize, int flags," attrlist_cursor_t ∗cursor);"int attr_listf (int fd, char ∗buffer, " const int buffersize, int flags," attrlist_cursor_t ∗cursor);" []

DESCRIPTION The attr_list and attr_listf functions provide a way to list the existing attributes of a filesystem object. Path  points to a path name for a filesystem object, and fd  refers to the file descriptor associated with a file. The buffer will be filled with a structure describing at least a portion of the attributes associated with the given filesystem object. Buffer will be overwritten with an \f4attrlist_t\fP structure containing a list of the attributes associated with that filesystem object, up to a maximum of buffersize bytes. The buffer must be sufficiently large to hold the appropriate data structures plus at least one maximally sized attribute name, but cannot be more than ATTR_MAX_VALUELEN (currently 64KB) bytes in length. [c p a] The contents of an \f4attrlist_t\fP structure include the following members: .ft 4 int32_t al_count; /∗ number of entries in attrlist ∗/ int32_t al_more; /∗ T/F: more attrs (do syscall again) ∗/ int32_t al_offset[1]; /∗ byte offsets of attrs [var-sized] ∗/ The al_count field shows the number of attributes represented in this buffer, which is also the number of elements in the al_offset array. The al_more field will be non-zero if another attr_list call would result in more attributes. The al_offset array contains the byte offset within the buffer of the structure describing each of the attributes, an \f4attrlist_ent_t\fP structure. The \f4ATTR_ENTRY(buffer, index)\fP macro will help with decoding the list. It takes a pointer to the buffer and an index into the al_offset array and returns a pointer to the corresponding \f4attrlist_ent_t\fP structure. The contents of an \f4attrlist_ent_t\fP structure include the following members: .ft 4 uint32_t a_valuelen; /∗ number bytes in value of attr ∗/ char a_name[]; /∗ attr name (NULL terminated) ∗/ [] The a_valuelen field shows the size in bytes of the value associated with the attribute whose name is stored in the a_name field. The name is a NULL terminated string. Note that the value of the attribute cannot be obtained through this interface, the attr_get call should be used to get the value. The attr_list interface tells the calling process how large of a buffer it must have in order to get the attribute´s value. The flags argument can contain the following symbols bitwise OR´ed together: ­ATTR_ROOT  List the attributes that are in the root address space, not in the user address space. (limited to use by super-user only) ­ATTR_DONTFOLLOW  Do not follow symbolic links when resolving a path on an attr_list function call. The default is to follow symbolic links. The cursor argument is a pointer to an opaque data structure that the kernel uses to track the calling process´s position in the attribute list. The only valid operations on a cursor are to pass it into an attr_list function call or to zero it out. It should be zero´ed out before the first attr_list call. Note that multi-threaded applications may keep more than one cursor in order to serve multiple contexts, ie: the attr_list call is "thread-safe". attr_list will fail if one or more of the following are true: ­[ENOENT]  The named file does not exist. ­[EPERM]  The effective user ID does not match the owner of the file and the effective user ID is not super-user. ­[ENOTDIR]  A component of the path prefix is not a directory. ­[EACCES]  Search permission is denied on a component of the path prefix. ­[EINVAL]  A bit was set in the flag argument that is not defined for this system call, or the buffer was too small or too large. ­[EFAULT]  Either Path or buffer points outside the allocated address space of the process, or buffer or bufsize are not 32bit aligned. ­[ELOOP]  A path name lookup involved too many symbolic links. ­[ENAMETOOLONG]  The length of path exceeds {MAXPATHLEN}, or a pathname component is longer than {MAXNAMELEN}. ­[ENOATTR]  attribute  does not exist for this file. attr_listf  will fail if: ­[EINVAL]  A bit was set in the flag argument that is not defined for this system call, or fd  refers to a socket, not a file, or the buffer was too small or too large. ­[EFAULT]  Either Path or buffer points outside the allocated address space of the process, or buffer or bufsize are not 32bit aligned. ­[EBADF]  Fd  does not refer to a valid descriptor.

DIAGNOSTICSUpon successful completion, a value of 0 is returned. Otherwise, a value of −1 is returned and errno  is set to indicate the error.

SEE ALSOattr(1), attr_multi(3), attr_remove(3), attr_set(3)
0
Johanes Gumabo
Data Size   :   15,402 byte
man-attr_list.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   3 / 180,886
Visitor ID   :     :  
Visitor IP   :   18.118.33.239   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.

ERROR : Need New Coding :         (rof_escape_sequence|91|attr_list.3|57|\f4attrlist_t\fP structure |will be overwritten with an \f4attrlist_t\fP structure )         (rof_escape_sequence|91|attr_list.3|69|\f4attrlist_t\fP structure include the following members: |The contents of an \f4attrlist_t\fP structure include the following members: )         (rof_ft|15|attr_list.3|73|4|.ft 4 )         (rof_escape_sequence|91|attr_list.3|98|\f4attrlist_ent_t\fP structure. |an \f4attrlist_ent_t\fP structure. )         (rof_escape_sequence|91|attr_list.3|99|\f4ATTR_ENTRY(buffer, index)\fP macro will help with decoding the list. |The \f4ATTR_ENTRY(buffer, index)\fP macro will help with decoding the list. )         (rof_escape_sequence|91|attr_list.3|107|\f4attrlist_ent_t\fP structure. |\f4attrlist_ent_t\fP structure. )         (rof_escape_sequence|91|attr_list.3|109|\f4attrlist_ent_t\fP structure |The contents of an \f4attrlist_ent_t\fP structure )         (rof_ft|15|attr_list.3|114|4|.ft 4 )