|
ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages
|
|
This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles. For more information about the manual page format, see the manual page for manpages(5). |
SETXATTR(2) BSD System Calls Manual SETXATTR(2)
NAME
setxattr, fsetxattr -- set an extended attribute value
SYNOPSIS
#include <sys/xattr.h>
int
setxattr(const char *path, const char *name, void *value, size_t size,
u_int32_t position, int options);
int
fsetxattr(int fd, const char *name, void *value, size_t size,
u_int32_t position, int options);
DESCRIPTION
Extended attributes extend the basic attributes associated with files and
directories in the file system. They are stored as name:data pairs asso-ciated associated
ciated with file system objects (files, directories, symlinks, etc).
setxattr() associates name and data together as an attribute of path.
An extended attribute's name is a simple NULL-terminated UTF-8 string.
Value is a pointer to a data buffer of size bytes containing textual or
binary data to be associated with the extended attribute. Position spec-ifies specifies
ifies the offset within the extended attribute. In the current implemen-tation, implementation,
tation, only the resource fork extended attribute makes use of this argu-ment. argument.
ment. For all others, position is reserved and should be set to zero.
options controls how the attribute is set:
XATTR_NOFOLLOW do not follow symbolic links. setxattr() normally sets
attributes on the target of path if it is a symbolic
link. With this option, setxattr() will act on the link
itself.
XATTR_CREATE fail if the named attribute already exists.
XATTR_REPLACE fail if the named attribute does not exist. Failure to
specify XATTR_REPLACE or XATTR_CREATE allows creation and
replacement.
fsetxattr() is identical to setxattr(), except that it sets an extended
attribute on an open file referenced by file descriptor fd.
RETURN VALUES
On success, 0 is returned. On failure, -1 is returned and the global
variable errno is set as follows.
ERRORS
[EEXIST] options contains XATTR_CREATE and the named attribute
already exists.
[ENOATTR] options is set to XATTR_REPLACE and the named
attribute does not exist.
[ENOTSUP] The file system does not support extended attributes
or has them disabled.
[EROFS] The file system is mounted read-only.
[ERANGE] The data size of the attribute is out of range (some
attributes have size restrictions).
[EPERM] Attributes cannot be associated with this type of
object. For example, attributes are not allowed for
resource forks.
[EINVAL] name or options is invalid. name must be valid UTF-8
and options must make sense.
[ENOTDIR] A component of path is not a directory.
[ENAMETOOLONG] name exceeded XATTR_MAXNAMELEN UTF-8 bytes, or a com-ponent component
ponent of path exceeded NAME_MAX characters, or the
entire path exceeded PATH_MAX characters.
[EACCES] Search permission is denied for a component of path or
permission to set the attribute is denied.
[ELOOP] Too many symbolic links were encountered resolving
path.
[EFAULT] path or name points to an invalid address.
[EIO] An I/O error occurred while reading from or writing to
the file system.
[E2BIG] The data size of the extended attribute is too large.
[ENOSPC] Not enough space left on the file system.
SEE ALSO
getxattr(2), listxattr(2), removexattr(2)
HISTORY
setxattr() and fsetxattr() first appeared in Mac OS X 10.4.
Mac OS X Oct 19, 2004 Mac OS X
|