Manpages - attr_remove.3

Table of Contents

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

does not match the owner of the file and the effective user

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.

SEE ALSO

*attr*(1), *attr_get*(3), *attr_list*(3), *attr_multi*(3), *attr_set*(3)

Author: dt

Created: 2022-02-20 Sun 14:42