Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SETXATTR(2)			 System	calls			   SETXATTR(2)

       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  at-
       tributes	 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 name-
       spaces  associated  with	an individual inode.  The value	of an extended
       attribute is a chunk of arbitrary textual or binary data	 of  specified

       The  flags  parameter can be used to refine the semantics of the	opera-
       tion.  XATTR_CREATE specifies a pure create, which fails	if  the	 named
       attribute exists	already.  XATTR_REPLACE	specifies a pure replace oper-
       ation, 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	attri-
       bute, 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 dis-
       abled, errno is set to ENOTSUP.

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

       Andreas Gruenbacher, <>	and the	SGI XFS	devel-
       opment team, <>.  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 attr(5).

Dec 2001		      Extended Attributes		   SETXATTR(2)


Want to link to this manual page? Use this URL:

home | help