summaryrefslogtreecommitdiff
path: root/man/man2/setxattr.2
diff options
context:
space:
mode:
Diffstat (limited to 'man/man2/setxattr.2')
-rw-r--r--man/man2/setxattr.2126
1 files changed, 126 insertions, 0 deletions
diff --git a/man/man2/setxattr.2 b/man/man2/setxattr.2
new file mode 100644
index 0000000..5a5f66f
--- /dev/null
+++ b/man/man2/setxattr.2
@@ -0,0 +1,126 @@
+.\"
+.\" Extended attributes system calls manual pages
+.\"
+.\" (C) Andreas Gruenbacher, February 2001
+.\" (C) Silicon Graphics Inc, September 2001
+.\"
+.TH SETXATTR 2 "Extended Attributes" "Dec 2001" "System calls"
+.SH NAME
+setxattr, lsetxattr, fsetxattr \- set an extended attribute value
+.SH SYNOPSIS
+.fam C
+.nf
+.B #include <attr/xattr.h>
+.sp
+.BI "int setxattr (const char\ *" path ", const char\ *" name ",
+.BI "\t\t\t void\ *" value ", size_t " size ", int " flags );
+.BI "int lsetxattr (const char\ *" path ", const char\ *" name ",
+.BI "\t\t\t void\ *" value ", size_t " size ", int " flags );
+.BI "int fsetxattr (int " filedes ", const char\ *" name ",
+.BI "\t\t\t void\ *" value ", size_t " size ", int " flags );
+.fi
+.fam T
+.SH DESCRIPTION
+Extended attributes are
+.IR name :\c
+.I 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
+.BR stat (2)
+data).
+A complete overview of extended attributes concepts can be found in
+.BR attr (5).
+.PP
+.B setxattr
+sets the
+.I value
+of the extended attribute identified by
+.I name
+and associated with the given
+.I path
+in the filesystem.
+The
+.I size
+of the
+.I value
+must be specified.
+.PP
+.B lsetxattr
+is identical to
+.BR 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.
+.PP
+.B fsetxattr
+is identical to
+.BR setxattr ,
+only the extended attribute is set on the open file pointed to by
+.I filedes
+(as returned by
+.BR open (2))
+in place of
+.IR path .
+.PP
+An extended attribute name is a simple NULL-terminated string.
+The
+.I name
+includes a namespace prefix \- there may be several, disjoint
+namespaces associated with an individual inode.
+The
+.I value
+of an extended attribute is a chunk of arbitrary textual or
+binary data of specified length.
+.PP
+The
+.I 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.
+.SH RETURN VALUE
+On success, zero is returned.
+On failure, \-1 is returned and
+.I errno
+is set appropriately.
+.PP
+If XATTR_CREATE is specified, and the attribute exists already,
+.I errno
+is set to EEXIST.
+If XATTR_REPLACE is specified, and the attribute does not exist,
+.I errno
+is set to ENOATTR.
+If XATTR_REMOVE is specified, and the attribute does not exist,
+.I errno
+is set to ENOATTR.
+.PP
+If there is insufficient space remaining to store the extended attribute,
+.I errno
+is set to either ENOSPC, or EDQUOT if quota enforcement was the cause.
+.PP
+If extended attributes are not supported by the filesystem, or are disabled,
+.I errno
+is set to ENOTSUP.
+.PP
+The errors documented for the
+.BR stat (2)
+system call are also applicable here.
+.SH AUTHORS
+Andreas Gruenbacher,
+.RI < a.gruenbacher@computer.org >
+and the SGI XFS development team,
+.RI < linux-xfs@oss.sgi.com >.
+Please send any bug reports or comments to these addresses.
+.SH SEE ALSO
+.BR getfattr (1),
+.BR setfattr (1),
+.BR open (2),
+.BR stat (2),
+.BR getxattr (2),
+.BR listxattr (2),
+.BR removexattr (2),
+and
+.BR attr (5).