diff options
Diffstat (limited to 'man/man3/attr_get.3')
-rw-r--r-- | man/man3/attr_get.3 | 190 |
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. |