FSCTL(2) BSD System Calls Manual FSCTL(2)NAME
fsctl — control filesystems
SYNOPSIS
#include <sys/attr.h>
#include <sys/ioctl.h>
int
fsctl(const char *path, unsigned long request, void *data,
unsigned long options);
DESCRIPTION
The fsctl() function manipulates the filesystem controlling mounted vol‐
umes. In particular, many filesystem-specific operating characteristics
of mounted filesystems may be controlled with fsctl() requests. fsctl()
requests can also be used to extract filesystem-specific information for
a mounted volumes.
path is the path name of any file within the mounted filesystem. An
fsctl request has encoded in it whether the argument is an “in” parameter
or “out” parameter, and the size of the argument data in bytes. Values
for request are entirely filesystem-specific except for the following,
defined in ⟨sys/fsctl.h⟩:
FSGETMOUNTINFOSIZE /* Return size of mount info data */
Macros and defines used in specifying an fsctl request are the same as
for ioctl() requests and are located in the file ⟨sys/ioccom.h⟩. options
may specify special flags for the processing of the fsctl() call. The
options are specified by or'ing the option values. The only option cur‐
rently defined is
#define FSOPT_NOFOLLOW 0x00000001 /* Don't follow symlinks */
which is interpreted by the fsctl() call to prevent following of sym‐
links. The options argument is passed to the filesystem, which may
define and handle additional options bit values.
RETURN VALUES
If an error has occurred, a value of -1 is returned and errno is set to
indicate the error.
ERRORSfsctl() 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.
[EFAULT] path or data points to an invalid address.
[EIO] An I/O error occurred while reading from or writing to
the file system.
[EINVAL] request or data is not valid.
SEE ALSOioctl(2), getattrlist(2), setattrlist(2)HISTORY
The fsctl() function call appeared in Mac OS X version 10.0.
Mac OS X January 14, 2003 Mac OS X