Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CHFLAGS(2)		    BSD	System Calls Manual		    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,	u_long 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.  For lchflags(), symbolic links are not
     traversed and thus	their modes may	be changed with	this call.

     The flags specified are formed by or'ing the following values:

	   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_OPAQUE	 The file (if a	directory) is opaque for union mounts.
	   SF_ARCHIVED	 The file is archived.
	   SF_IMMUTABLE	 The file may not be changed.
	   SF_APPEND	 The file may only be appended to.

     The UF_NODUMP, UF_IMMUTABLE, UF_APPEND, and UF_OPAQUE flags may be	set or
     unset by either the owner of a file or the	super-user, except on block
     and character devices, where only the super-user may set or unset them.

     The SF_ARCHIVED, SF_IMMUTABLE, and	SF_APPEND flags	may only be set	or un-
     set by the	super-user.  Attempts by the non-super-user to set the super-
     user only flags 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.)

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() will fail if:

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

     [ENAMETOOLONG]	A component of a pathname exceeded {NAME_MAX} charac-
			ters, or an entire path	name exceeded {PATH_MAX} char-
			acters.

     [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 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,
			or the effective user ID is not	the super-user and one
			or more	of the super-user-only flags for the named
			file would be changed.

     [EOPNOTSUPP]	The named file resides on a file system	that does not
			support	file flags.

     [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,
			or the effective user ID is not	the super-user and one
			or more	of the super-user-only flags for the file
			would be changed.

     [EOPNOTSUPP]	The file resides on a file system that does not	sup-
			port file flags.

     [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
     chflags(1), stat(2), stat_flags(3), init(8), mount_union(8)

HISTORY
     The chflags() and fchflags() functions first appeared in 4.4BSD.  The
     lchflags()	function first appeared	in NetBSD 1.5.

BSD				August 6, 2011				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=chflags&sektion=2&manpath=NetBSD+6.0>

home | help