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

FreeBSD Manual Pages

  
 
  

home | help
CHFLAGS(2)		  FreeBSD System Calls Manual		    CHFLAGS(2)

NAME
     chflags, chflagsat, fchflags -- set file flags

SYNOPSIS
     #include <sys/stat.h>

     int
     chflags(const char	*path, unsigned	int flags);

     int
     fchflags(int fd, unsigned int flags);

     #include <sys/stat.h>
     #include <fcntl.h>

     int
     chflagsat(int fd, const char *path, unsigned int flags, int atflags);

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

     The flags are the bitwise OR of zero or more of 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.
	   SF_ARCHIVED	 The file may be archived.
	   SF_IMMUTABLE	 The file may not be changed.
	   SF_APPEND	 The file may only be appended to.

     The UF_IMMUTABLE and UF_APPEND flags may be set or	unset by either	the
     owner of a	file or	the superuser.

     The SF_ARCHIVED, SF_IMMUTABLE and SF_APPEND flags may only	be set or un-
     set by the	superuser.  They may be	set at any time, but normally may only
     be	unset when the system is in single-user	mode.  (See init(8) for	de-
     tails.)

     The chflagsat() function is equivalent to chflags() except	in the case
     where path	specifies a relative path.  In this case the file to be
     changed is	determined relative to the directory associated	with the file
     descriptor	fd instead of the current working directory.

     If	chflagsat() is passed the special value	AT_FDCWD (defined in
     <fcntl.h>)	in the fd parameter, the current working directory is used.
     If	atflags	is also	zero, the behavior is identical	to a call to
     chflags().

     The atflags argument is the bitwise OR of zero or more of the following
     values:

	   AT_SYMLINK_NOFOLLOW	If path	names a	symbolic link, then the	flags
				of the symbolic	link are changed.

     The fchflags() function is	equivalent to chflags()	except that the	file
     whose flags are changed is	specified by the file descriptor fd.

RETURN VALUES
     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.

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 pathname (including the terminating
			NUL) exceeded PATH_MAX bytes.

     [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 superuser,
			or the effective user ID is not	the superuser and at
			least one 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.

     [EINVAL]		The flags value	is invalid.

     [EINVAL]		The descriptor references a block or character device
			and the	effective user ID is not the superuser.

     fchflags()	will fail if:

     [EBADF]		The descriptor is not valid.

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

     [EINVAL]		The descriptor references a block or character device
			and the	effective user ID is not the superuser.

     [EINVAL]		The flags value	is invalid.

     [EPERM]		The effective user ID does not match the owner of the
			file and the effective user ID is not the superuser,
			or the effective user ID is not	the superuser and at
			least one 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 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), init(8)

HISTORY
     The chflags() and fchflags() functions first appeared in 4.4BSD.  The
     chflagsat() function first	appeared in FreeBSD 10.0.  It was added	to
     OpenBSD in	OpenBSD	5.7.

FreeBSD	13.0			March 25, 2019			  FreeBSD 13.0

NAME | 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=OpenBSD+6.9>

home | help