CHFLAGS(2)

NAME
chflags, fchflags - set file flags

SYNOPSIS
#include <unistd.h>
int
chflags(const char *path, long flags);
int
fchflags(int fd, long flags);

DESCRIPTION
The file whose name is given by path or referenced by the descriptor fd has its flags changed to flags.

Only the owner of a file (or the super-user) may change the flags. The owner may only change the lower 16 bits of the flags; the super-user may change all 32 bits of the flags.

RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error.

ERRORS
Chflags() fails if:

[ENOTDIR]
    A component of the path prefix is not a directory.

[EINVAL]
    The pathname contains a character with the high-order bit set.

[ENAMETOOLONG]
    A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

[ENOENT]
    The named file does not exist.

[EACCES]
    Search permission is denied for a component of the path prefix.

[ELOOP]
    Too many symbolic links were encountered in translating the pathname.

[EPERM]
    The effective user ID does not match the owner of the file and the effective user ID is not the super-user.

[EROFS]
    The named file resides on a read-only file system.

[EFAULT]
    Path points outside the process's allocated address space.

[EIO]
    An I/O error occurred while reading from or writing to the file system.

Fchflags() will fail if:

[EBADF]
    The descriptor is not valid.

[EINVAL]
    Fd refers to a socket, not to a file.

[EPERM]
    The effective user ID does not match the owner of the file and the effective user ID is not the super-user.

[EROFS]
    The file resides on a read-only file system.

[EIO]
    An I/O error occurred while reading from or writing to the file system.

SEE ALSO
chmod(2), open(2), chown(2), stat(2)

HISTORY
The chflags and fchflags function calls are