man attr_get – Man page for attr_get

June 1, 2007 – 1:22 am

ATTR_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
attrname

in the
root

address space, not in the
user

address space.
(limited to use by super–user only)

ATTR_DONTFOLLOW

Do not follow symbolic links when resolving a
path

on an
attr_get

function 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
valuelength

argument 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
flag

argument that is not defined for this system call.

[EFAULT]

Path,

attrname,

attrvalue,

or
valuelength

points outside the allocated address space of the process.

[ELOOP]

A path name lookup involved too many symbolic links.
[ENAMETOOLONG]

The length of
path

exceeds
{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
valuelength

argument 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
flag

argument that is not defined for this system call,
or
fd

refers to a socket, not a file.

[EFAULT]

Attrname,

attrvalue,

or
valuelength

points outside the allocated address space of the process.

[EBADF]

Fd

does not refer to a valid descriptor.


 

DIAGNOSTICS

On success, zero is returned. On error, –1 is returned, and
errno

is set appropriately.
 

SEE ALSO

attr(1),

attr_list(3),

attr_multi(3),

attr_remove(3),

and
attr_set(3).



 

Index



NAME

C SYNOPSIS

DESCRIPTION

DIAGNOSTICS

SEE ALSO



Related posts:

  1. man attr_remove – Man page for attr_remove
  2. man attr_multif – Man page for attr_multif
  3. man attr_list – Man page for attr_list
  4. man removexattr – Man page for removexattr
  5. man lgetxattr – Man page for lgetxattr
  6. man quotactl – Man page for quotactl
  7. man gfs_grow – Man page for gfs_grow
  8. man mknod – Man page for mknod
  9. man nash – Man page for nash
  10. man grubby – Man page for grubby

Post a Comment