chflags(2)
NAME
chflags, lchflags, fchflags - set file flags
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/stat.h> #include <unistd.h> int chflags(const char *path, u_long flags); int lchflags(const char *path, int flags); int fchflags(int fd, u_long flags);
DESCRIPTION
- The file whose name is given by path or referenced by the
- descriptor fd
has its flags changed to flags. - The lchflags() system call is like chflags() except in the
- case where the
named file is a symbolic link, in which case lchflags() will - change the
flags of the link itself, rather than the file it points to. - The flags specified are formed by or'ing the following val
- ues
UF_NODUMP Do not dump the file.
UF_IMMUTABLE The file may not be changed.
UF_APPEND The file may only be appended to.
UF_NOUNLINK The file may not be renamed or deleted.
UF_OPAQUE The directory is opaque when viewed- through a union
stack.
- SF_ARCHIVED The file may be archived.
SF_IMMUTABLE The file may not be changed.
SF_APPEND The file may only be appended to.
SF_NOUNLINK The file may not be renamed or deleted. - The ``UF_IMMUTABLE'', ``UF_APPEND'', ``UF_NOUNLINK'',
- ``UF_NODUMP'', and
``UF_OPAQUE'' flags may be set or unset by either the owner - of a file or
the super-user. - The ``SF_IMMUTABLE'', ``SF_APPEND'', ``SF_NOUNLINK'', and
- ``SF_ARCHIVED''
flags may only be set or unset by the super-user. Attempts - by the nonsuper-user to set the super-user only flags are silently ig
- nored. These
flags may be set at any time, but normally may only be unset - when the
system is in single-user mode. (See init(8) for details.)
RETURN VALUES
- The function returns the value 0 if successful; otherwise
- the value -1 is
returned and the global variable errno is set to indicate - the error.
ERRORS
The chflags() system call will fail if:
- [ENOTDIR] A component of the path prefix is not a
- directory.
- [ENAMETOOLONG] A component of a pathname exceeded 255
- characters, or
- an entire path name exceeded 1023 charac
- ters.
- [ENOENT] The named file does not exist.
- [EACCES] Search permission is denied for a compo
- nent of the
- path prefix.
- [ELOOP] Too many symbolic links were encountered
- in translat
- ing 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] The path argument points outside the pro
- cess's allo
- cated address space.
- [EIO] An I/O error occurred while reading from
- or writing to
- the file system.
- [EOPNOTSUPP] The underlying file system does not sup
- port file
- flags.
- The fchflags() system call will fail if:
- [EBADF] The descriptor is not valid.
- [EINVAL] The fd argument 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 sys
- tem.
- [EIO] An I/O error occurred while reading from
- or writing to
- the file system.
- [EOPNOTSUPP] The underlying file system does not sup
- port file
- flags.
SEE ALSO
HISTORY
- The chflags() and fchflags() system calls first appeared in
- 4.4BSD.
- BSD May 5, 2002