Provided by: libattr1-dev_2.4.47-1ubuntu1_amd64 bug


       setxattr, lsetxattr, fsetxattr - set an extended attribute value


       #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);


       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 identified 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 individual
       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.


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

       If XATTR_CREATE is specified, and the attribute exists 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 filesystem, or are disabled, errno is  set
       to ENOTSUP.

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


       Andreas Gruenbacher, <> and the SGI XFS development team, <linux->.  Please send any bug reports or comments to these addresses.


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