chflags, lchflags,
- Provided by: freebsd-manpages (Version: 9.2+1-1)
- Report a bug
Standard C Library (libc, -lc)
#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);
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 values
UF_NODUMPUF_IMMUTABLEUF_APPENDUF_NOUNLINKUF_OPAQUESF_ARCHIVEDSF_IMMUTABLESF_APPENDSF_NOUNLINKSF_SNAPSHOTIf one of SF_IMMUTABLE,
SF_APPEND, or SF_NOUNLINK is
set a non-super-user cannot change any flags and even the super-user can
change flags only if securelevel is greater than 0. (See
init(8) for details.)
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 to set these flags by non-super-users are rejected,
attempts by non-superusers to clear flags that are already unset are
silently ignored. 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.)
The SF_SNAPSHOT flag is maintained by the
system and cannot be changed by any user.
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
The chflags() system call will fail
if:
ENOTDIR]ENAMETOOLONG]ENOENT]EACCES]ELOOP]EPERM]EPERM]SF_IMMUTABLE,
SF_APPEND, or SF_NOUNLINK
is set and the user is either not the super-user or securelevel is greater
than 0.EPERM]SF_ARCHIVED,
SF_IMMUTABLE, SF_APPEND,
or SF_NOUNLINK.EPERM]SF_SNAPSHOT
flag.EROFS]EFAULT]EIO]EOPNOTSUPP]The fchflags() system call will fail
if:
EBADF]EINVAL]EPERM]EPERM]SF_IMMUTABLE,
SF_APPEND, or SF_NOUNLINK
is set and the user is either not the super-user or securelevel is greater
than 0.EPERM]SF_ARCHIVED,
SF_IMMUTABLE, SF_APPEND,
or SF_NOUNLINK.EPERM]SF_SNAPSHOT
flag.EROFS]EIO]EOPNOTSUPP]chflags(1), fflagstostr(3), strtofflags(3), init(8), mount_unionfs(8)
The chflags() and
fchflags() system calls first appeared in
4.4BSD.