[BACK]Return to attr_remove.3 CVS log [TXT][DIR] Up to [Development] / xfs-cmds / attr / man / man3

File: [Development] / xfs-cmds / attr / man / man3 / attr_remove.3 (download)

Revision 1.8, Thu Jan 12 23:53:25 2006 UTC (11 years, 9 months ago) by nathans
Branch: MAIN
CVS Tags: HEAD
Changes since 1.7: +2 -1 lines

Implement the list_attr IRIX API on top of the Linux API.  For fsstress.

.TH ATTR_REMOVE 3 "Extended Attributes" "Dec 2001" "XFS Compatibility API"
.SH NAME
attr_remove, attr_removef \- remove a user attribute of a filesystem object
.SH C SYNOPSIS
.PP
.sp
.nf
.B #include <attr/attributes.h>
.sp
.B "int attr_remove (const char *\f2path\f3, const char *\f2attrname\f3, int \f2flags\f3);"
.PP
.B "int attr_removef (int \f2fd\f3, const char *\f2attrname\f3, int \f2flags\f3);"
.Op
.SH DESCRIPTION
The
.B attr_remove
and
.B attr_removef
functions provide a way to remove previously created attributes
from filesystem objects.
.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 attribute name and value will be removed from the
fileystem object.
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
.B attr_remove
function call.
The default is to follow symbolic links.
.PP
.B attr_remove
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
\%[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
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
.B attr_removef\^
will fail if:
.TP 15
.SM
\%[ENOATTR]
The attribute name given is not associated with the indicated
filesystem object.
.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
points outside the allocated address space of the process.
.TP
.SM
\%[EBADF]
.I Fd\^
does not refer to a valid descriptor.
.SH "DIAGNOSTICS"
On success, zero is returned.  On error, \-1 is returned, and
.I errno
is set appropriately.
.SH "SEE ALSO"
.BR attr (1),
.BR attr_get (3),
.BR attr_list (3),
.BR attr_multi (3),
and
.BR attr_set (3).