# setxattr

## NAME



           setxattr, lsetxattr, fsetxattr - set an extended attribute value
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <sys/xattr.h>**
    
           **int setxattr(** size_t size;
                         **const char ***_path_**, const char ***_name_**,**
                         **const void** _value_**[**_size_**], size_t** _size_**, int** _flags_**);**
           **int lsetxattr(** size_t size;
                         **const char ***_path_**, const char ***_name_**,**
                         **const void** _value_**[**_size_**], size_t** _size_**, int** _flags_**);**
           **int fsetxattr(** size_t size;
                         **int** _fd_**, const char ***_name_**,**
                         **const void** _value_**[**_size_**], size_t** _size_**, int** _flags_**);**
    


## DESCRIPTION



           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 xattr(7).
    
           **setxattr**() sets the _value_ of the extended attribute identified by
           _name_ and associated with the given _path_ in the filesystem.  The
           _size_ argument specifies the size (in bytes) of _value_ ; a zero-
           length value is permitted.
    
           **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 referred to by _fd_ (as returned
           by open(2)) in place of _path_.
    
           An extended attribute name is a 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.
    
           By default (i.e., _flags_ is zero), the extended attribute will be
           created if it does not exist, or the value will be replaced if the
           attribute already exists.  To modify these semantics, one of the
           following values can be specified in _flags_ :
    
           **XATTR_CREATE**
                  Perform a pure create, which fails if the named attribute
                  exists already.
    
           **XATTR_REPLACE**
                  Perform a pure replace operation, which fails if the named
                  attribute does not already exist.
    


## RETURN VALUE



           On success, zero is returned.  On failure, -1 is returned and
           _errno_ is set to indicate the error.
    


## ERRORS



           **EDQUOT** Disk quota limits meant that there is insufficient space
                  remaining to store the extended attribute.
    
           **EEXIST XATTR_CREATE** was specified, and the attribute exists
                  already.
    
           **ENODATA**
                  **XATTR_REPLACE** was specified, and the attribute does not
                  exist.
    
           **ENOSPC** There is insufficient space remaining to store the extended
                  attribute.
    
           **ENOTSUP**
                  The namespace prefix of _name_ is not valid.
    
           **ENOTSUP**
                  Extended attributes are not supported by the filesystem, or
                  are disabled,
    
           **EPERM** The file is marked immutable or append-only.  (See
                  FS_IOC_SETFLAGS(2const).)
    
           In addition, the errors documented in stat(2) can also occur.
    
           **ERANGE** The size of _name_ or _value_ exceeds a filesystem-specific
                  limit.
    


## STANDARDS



           Linux.
    


* * *