ATTR_REMOVE(3)
NAME
attr_remove, attr_removef - remove a user attribute of a filesystem
object
C SYNOPSIS
#include <attr/attributes.h>
int attr_remove (const char *path, const char *attrname, int flags);
int attr_removef (int fd, const char *attrname, int flags);
DESCRIPTION
The attr_remove and attr_removef functions provide a way to remove previously created attributes from filesystem objects.
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 attribute name and value will be removed from the fileystem
object. 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_remove function call. The default is to follow symbolic links.
- attr_remove will fail if one or more of the following are true:
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object.
- [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 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_removef will fail if:
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object.
- [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 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.