setxattr, lsetxattr, fsetxattr - set an extended attribute
       value


SYNOPSIS

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

       int setxattr (const char *path, const char *name,
                       const void *value, size_t size, int flags);
       int lsetxattr (const char *path, const char *name,
                       const void *value, size_t size, int flags);
       int fsetxattr (int filedes, const char *name,
                       const void *value, size_t size, int flags);


DESCRIPTION

       Extended attributes are name:value pairs  associated  with
       inodes  (files,  directories,  symlinks,  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).

       setxattr  sets the value of the extended attribute identi­
       fied by name and associated with the  given  path  in  the
       filesystem.  The size of the value must be specified.

       lsetxattr  is identical to setxattr, except in the case of
       a symbolic link, where the extended attribute  is  set  on
       the link itself, not the file that it refers to.

       fsetxattr  is  identical  to  setxattr,  only the extended
       attribute is set on the open file pointed  to  by  filedes
       (as returned by open(2)) in place of path.

       An  extended  attribute  name  is a simple NULL-terminated
       string.  The name includes a namespace prefix - there  may
       be  several,  disjoint namespaces associated with an indi­
       vidual inode.  The value of an  extended  attribute  is  a
       chunk  of  arbitrary  textual  or binary data of specified
       length.

       The flags parameter can be used to refine the semantics of
       the  operation.   XATTR_CREATE  specifies  a  pure create,
       which  fails  if  the  named  attribute  exists   already.
       XATTR_REPLACE  specifies  a  pure replace operation, which
       fails if the named attribute does not already  exist.   By
       default (no flags), the extended attribute will be created
       if need be, or  will  simply  replace  the  value  if  the
       attribute exists.


RETURN VALUE

       On  success, zero is returned.  On failure, -1 is returned
       and errno is set appropriately.

       already,  errno  is  set  to  EEXIST.  If XATTR_REPLACE is
       specified, and the attribute does not exist, errno is  set
       to ENOATTR.

       If  there  is  insufficient  space  remaining to store the
       extended attribute, errno is  set  to  either  ENOSPC,  or
       EDQUOT if quota enforcement was the cause.

       If  extended  attributes are not supported by the filesys­
       tem, or are disabled, errno is set to ENOTSUP.

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


AUTHORS

       Andreas  Gruenbacher, <a.gruenbacher@computer.org> and the
       SGI XFS development team, <linux-xfs@oss.sgi.com>.  Please
       send any bug reports or comments to these addresses.


SEE ALSO

       getfattr(1),  setfattr(1),  open(2), stat(2), getxattr(2),
       listxattr(2), removexattr(2), and attr(5).


Man(1) output converted with man2html