attr_get, attr_getf - get the value of a user attribute of
       a filesystem object


C SYNOPSIS

       #include <attr/attributes.h>

       int attr_get (const char *path, const char *attrname,
                     char *attrvalue, int *valuelength, int flags);

       int attr_getf (int fd, const char *attrname,
                      char *attrvalue, int *valuelength, int flags);


DESCRIPTION

       The attr_get and attr_getf  functions  provide  a  way  to
       retrieve the value of an attribute.

       Path points to a path name for a filesystem object, and fd
       refers to the file descriptor associated with a file.   If
       the  attribute  attrname exists, the value associated with
       it will be copied into the attrvalue buffer.   The  value­
       length  argument  is  an input/output argument that on the
       call to  attr_get  should  contain  the  maximum  size  of
       attribute  value  the  process  is  willing to accept.  On
       return, the valuelength will have been  modified  to  show
       the  actual  size  of  the  attribute value returned.  The
       flags argument can contain the following  symbols  bitwise
       OR´ed together:

       ATTR_ROOT
              Look for attrname 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_get function call.  The  default  is  to
              follow symbolic links.

       attr_get  will  fail  if  one or more of the following are
       true:

       [ENOATTR]        The attribute name given is  not  associ­
                        ated   with   the   indicated  filesystem
                        object.

       [E2BIG]          The value of the given attribute  is  too
                        large  to fit into the buffer.  The inte­
                        ger that the valuelength argument  points
                        to  has  been modified to show the actual
                        number of bytes that would be required to
                        store the value of that attribute.

       [ENOENT]         The named file does not exist.

                        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  compo­
                        nent of the path prefix.

       [EINVAL]         A  bit  was set in the flag argument that
                        is not defined for this system call.

       [EFAULT]         Path, attrname, attrvalue, or valuelength
                        points   outside  the  allocated  address
                        space of the process.

       [ELOOP]          A path name lookup involved too many sym­
                        bolic links.

       [ENAMETOOLONG]   The  length of path exceeds {MAXPATHLEN},
                        or a pathname component  is  longer  than
                        {MAXNAMELEN}.

       attr_getf will fail if:

       [ENOATTR]      The  attribute name given is not associated
                      with the indicated filesystem object.

       [E2BIG]        The value of the  given  attribute  is  too
                      large  to fit into the buffer.  The integer
                      that the valuelength argument points to has
                      been modified to show the actual numnber of
                      bytes that would be required to  store  the
                      value of that attribute.

       [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.

       [EFAULT]       Attrname,  attrvalue, or valuelength points
                      outside the allocated address space of  the
                      process.

       [EBADF]        Fd does not refer to a valid descriptor.


DIAGNOSTICS

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


SEE ALSO

       attr(1), attr_multi(3), attr_remove(3), and attr_set(3).


Man(1) output converted with man2html