NAME
mount, umount - mount or remove file system

SYNOPSIS
mount(special, name, rwflag)
const char *special, *name;
int rwflag;

umount(special)
const char *special;

DESCRIPTION
Mount announces to the system that a removable file system has been
mounted on the block-structured special file special; from now on,
references to file name will refer to the root file on the newly
mounted file system. Special and name are pointers to null-
terminated strings containing the appropriate path names.

Name must exist already. Name must be a directory. Its old
contents are inaccessible while the file system is mounted.

The rwflag argument determines whether the file system can be
written on; if it is 0 writing is allowed, if non-zero no writing
is done. Physically write-protected and magnetic tape file systems
must be mounted read-only or errors will occur when access times
are updated, whether or not any explicit write is attempted.

Umount announces to the system that the special file is no longer
to contain a removable file system. The associated file reverts to
its ordinary interpretation.

RETURN VALUE
Mount returns 0 if the action occurred, -1 if special is
inaccessible or not an appropriate file, if name does not exist, if
special is already mounted, if name is in use, or if there are
already too many file systems mounted.

Umount returns 0 if the action occurred; -1 if if the special file
is inaccessible or does not have a mounted file system, or if there
are active files in the mounted file system.

ERRORS
Mount will fail when one of the following occurs:

[ENAMETOOLONG] A component of either pathname exceeded 255
characters, or the entire length of either path name
exceeded 1023 characters.

[ELOOP] Too many symbolic links were encountered in
translating either pathname.

[EPERM] The caller is not the super-user.

[ENOENT] A component of name does not exist.

[ENODEV] A component of special does not exist.

[ENOTBLK] Special is not a block device.

[ENXIO] The major device number of special is out of range
(this indicates no device driver exists for the
associated hardware).

[ENOTDIR] A component of name is not a directory, or a path
prefix of special is not a directory.

[EINVAL] Either pathname contains a character with the high-
order bit set.

[EINVAL] The super block for the file system had a bad magic
number or an out of range block size.

[EBUSY] Another process currently holds a reference to name,
or special is already mounted.

[EMFILE] No space remains in the mount table.

[ENOMEM] Not enough memory was available to read the cylinder
group information for the file system.

[EIO] An I/O error occurred while reading the super block
or cylinder group information.

[EFAULT] Special or name points outside the process’s
allocated address space.

Umount may fail with one of the following errors:

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

[EINVAL] The pathname contains a character with the high-
order bit set.

[ENAMETOOLONG] A component of a pathname exceeded 255 characters,
or an entire path name exceeded 1023 characters.

[ELOOP] Too many symbolic links were encountered in
translating the pathname.

[EPERM] The caller is not the super-user.

[ENODEV] Special does not exist.

[ENOTBLK] Special is not a block device.

[ENXIO] The major device number of special is out of range
(this indicates no device driver exists for the
associated hardware).

[EINVAL] The requested device is not in the mount table.

[EBUSY] A process is holding a reference to a file located
on the file system.

[EIO] An I/O error occurred while writing the super block
or other cached file system information.

[EFAULT] Special points outside the process’s allocated
address space.

SEE ALSO
mount(8), umount(8)

BUGS
Some of the error codes need translation to more obvious messages.