summaryrefslogtreecommitdiff
path: root/man/man3/attr_get.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/attr_get.3')
-rw-r--r--man/man3/attr_get.3190
1 files changed, 190 insertions, 0 deletions
diff --git a/man/man3/attr_get.3 b/man/man3/attr_get.3
new file mode 100644
index 0000000..8c9385c
--- /dev/null
+++ b/man/man3/attr_get.3
@@ -0,0 +1,190 @@
+.TH ATTR_GET 3
+.SH NAME
+attr_get, attr_getf \- get the value of a user attribute of a filesystem object
+.SH C SYNOPSIS
+.PP
+.sp
+.nf
+.B #include <sys/attributes.h>
+.sp
+.B "int attr_get (const char \(**path, const char \(**attrname, "
+.B " char \(**attrvalue, int \(**valuelength, int flags);"
+.PP
+.B "int attr_getf (int fd, const char \(**attrname, "
+.B " char \(**attrvalue, int \(**valuelength, int flags);"
+.Op
+.SH DESCRIPTION
+The
+.I attr_get
+and
+.I attr_getf
+functions provide a way to retrieve the value of an attribute.
+.P
+.I Path\^
+points to a path name for a filesystem object, and
+.I fd\^
+refers to the file descriptor associated with a file.
+If the attribute
+.I attrname
+exists, the value associated with it will be copied into the
+.I attrvalue
+buffer.
+The
+.I valuelength
+argument is an input/output argument that on the call to
+.I attr_get
+should contain the maximum size of attribute value the
+process is willing to accept.
+On return, the
+.I valuelength
+will have been modified to show the actual size of the
+attribute value returned.
+The
+.I flags
+argument can contain the following symbols bitwise OR\'ed together:
+.TP
+.SM
+\%ATTR_ROOT
+Look for
+.I attrname
+in the
+.B root
+address space, not in the
+.B user
+address space.
+(limited to use by super-user only)
+.TP
+.SM
+\%ATTR_DONTFOLLOW
+Do not follow symbolic links when resolving a
+.I path
+on an
+.I attr_get
+function call.
+The default is to follow symbolic links.
+.PP
+.I attr_get
+will fail if one or more of the following are true:
+.TP 17
+.SM
+\%[ENOATTR]
+The attribute name given is not associated with the indicated
+filesystem object.
+.TP
+.SM
+\%[E2BIG]
+The value of the given attribute is too large to fit into the buffer.
+The integer that the
+.I 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.
+.TP
+.SM
+\%[ENOENT]
+The named file does not exist.
+.TP
+.SM
+\%[EPERM]
+The effective user
+.SM ID
+does not match the owner of the file
+and the effective user
+.SM ID
+is not super-user.
+.TP
+.SM
+\%[ENOTDIR]
+A component of the
+path prefix
+is not a directory.
+.TP
+.SM
+\%[EACCES]
+Search permission is denied on a
+component of the
+path prefix.
+.TP
+.SM
+\%[EINVAL]
+A bit was set in the
+.I flag
+argument that is not defined for this system call.
+.TP
+.SM
+\%[EFAULT]
+.I Path,
+.I attrname,
+.I attrvalue,
+or
+.I valuelength
+points outside the allocated address space of the process.
+.TP
+.SM
+\%[ELOOP]
+A path name lookup involved too many symbolic links.
+.TP
+.SM
+\%[ENAMETOOLONG]
+The length of
+.I path
+exceeds
+.SM
+.RI { MAXPATHLEN },
+or a pathname component is longer than
+.SM
+.RI { MAXNAMELEN }.
+.PP
+.I attr_getf\^
+will fail if:
+.TP 15
+.SM
+\%[ENOATTR]
+The attribute name given is not associated with the indicated
+filesystem object.
+.TP
+.SM
+\%[E2BIG]
+The value of the given attribute is too large to fit into the buffer.
+The integer that the
+.I 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.
+.TP
+.SM
+\%[EINVAL]
+A bit was set in the
+.I flag
+argument that is not defined for this system call,
+or
+.I fd\^
+refers to a socket, not a file.
+.TP
+.SM
+\%[EFAULT]
+.I Attrname,
+.I attrvalue,
+or
+.I valuelength
+points outside the allocated address space of the process.
+.TP
+.SM
+\%[EBADF]
+.I Fd\^
+does not refer to a valid descriptor.
+.SH "SEE ALSO"
+attr(1),
+.br
+attrctl(2),
+.br
+attr_list(3), attr_listf(3)
+.br
+attr_multi(3), attr_multif(3)
+.br
+attr_remove(3), attr_removef(3),
+.br
+attr_set(3), attr_setf(3),
+.SH "DIAGNOSTICS"
+Upon successful completion, a value of 0 is returned.
+Otherwise, a value of \-1 is returned and
+.I errno\^
+is set to indicate the error.