man attr_get – Man page for attr_get
June 1, 2007 – 1:22 amATTR_GET
Section: XFS Compatibility API (3)
Updated: Extended Attributes
Index
Return to Main Contents
NAME
attr_get, attr_getf – get the value of a user attribute of a filesystem object
C SYNOPSIS
#include <attr/attributes.h>int attr_get (const char *path, const char *attrname,
char *attrvalue, int *valuelength, int flags);int attr_getf (int fd, const char *attrname,
char *attrvalue, int *valuelength, int flags);
[
DESCRIPTION
]
The
attr_get
and
attr_getf
functions provide a way to retrieve the value of an attribute.
Path
points to a path name for a filesystem object, and
fd
refers to the file descriptor associated with a file.
If the attribute
attrname
exists, the value associated with it will be copied into the
attrvalue
buffer.
The
valuelength
argument is an input/output argument that on the call to
attr_get
should contain the maximum size of attribute value the
process is willing to accept.
On return, the
valuelength
will have been modified to show the actual size of the
attribute value returned.
The
flags
argument can contain the following symbols bitwise OR’ed together:
- ATTR_ROOT
Look for
attrnamein the
rootaddress space, not in the
useraddress space.
(limited to use by super–user only)
- ATTR_DONTFOLLOW
Do not follow symbolic links when resolving a
pathon an
attr_getfunction call.
The default is to follow symbolic links.
attr_get
will fail if one or more of the following are true:
- [ENOATTR]
The attribute name given is not associated with the indicated
filesystem object.
- [E2BIG]
The value of the given attribute is too large to fit into the buffer.
The integer that the
valuelengthargument points to has been modified to show the actual number
of bytes that would be required to store the value of that attribute.
- [ENOENT]
The named file does not exist.
- [EPERM]
The effective user
ID
does not match the owner of the file and the effective user
ID
is not super–user.
- [ENOTDIR]
A component of the path prefix is not a directory.
- [EACCES]
Search permission is denied on a component of the path prefix.
- [EINVAL]
A bit was set in the
flagargument that is not defined for this system call.
- [EFAULT]
Path,attrname,
attrvalue,
or
valuelengthpoints outside the allocated address space of the process.
- [ELOOP]
A path name lookup involved too many symbolic links.
- [ENAMETOOLONG]
The length of
pathexceeds
{MAXPATHLEN},
or a pathname component is longer than
{MAXNAMELEN}.
attr_getf
will fail if:
- [ENOATTR]
The attribute name given is not associated with the indicated
filesystem object.
- [E2BIG]
The value of the given attribute is too large to fit into the buffer.
The integer that the
valuelengthargument points to has been modified to show the actual numnber
of bytes that would be required to store the value of that attribute.
- [EINVAL]
A bit was set in the
flagargument that is not defined for this system call,
or
fdrefers to a socket, not a file.
- [EFAULT]
Attrname,attrvalue,
or
valuelengthpoints outside the allocated address space of the process.
- [EBADF]
Fddoes not refer to a valid descriptor.
DIAGNOSTICS
On success, zero is returned. On error, –1 is returned, and
errno
SEE ALSO
attr(1),
attr_list(3),
attr_multi(3),
attr_remove(3),
and
attr_set(3).
Index
Related posts:
- man attr_remove – Man page for attr_remove
- man attr_multif – Man page for attr_multif
- man attr_list – Man page for attr_list
- man removexattr – Man page for removexattr
- man lgetxattr – Man page for lgetxattr
- man quotactl – Man page for quotactl
- man gfs_grow – Man page for gfs_grow
- man mknod – Man page for mknod
- man nash – Man page for nash
- man grubby – Man page for grubby