MOUNT(2) UNIX Programmer's Manual MOUNT(2) NAME mount, umount - mount or remove file system SYNOPSIS mount(special, name, flags) char *special, *name; int flags; umount(special) char *special; DESCRIPTION Mount announces to the system that a removable file system has been mounted on the block-structured special file spe- cial; 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 following flags may be specified to suppress default semantics which affect filesystem access. MNT_RDONLY The filesystem should be treated as read-only; Even the super-user may not write on it. MNT_NOEXEC Do not allow files to be executed from the filesystem. MNT_NOSUID Do not honor setuid or setgid bits on files when executing them. MNT_NODEV Do not interpret special files on the filesystem. MNT_SYNCHRONOUS All I/O to the filesystem should be done synchronously. 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. Printed 11/26/99 January 25, 1996 1 MOUNT(2) UNIX Programmer's Manual MOUNT(2) Umount returns 0 if the action occurred; -1 if if the spe- cial 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 sys- tem. [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. Printed 11/26/99 January 25, 1996 2 MOUNT(2) UNIX Programmer's Manual MOUNT(2) 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 char- acters, 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 informa- tion. [EFAULT] Special points outside the process's allo- cated address space. SEE ALSO mount(8), umount(8) BUGS Some of the error codes need translation to more obvious messages. 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. MNT_SYNCHRONOUS is not currently implemented in the kernel but may be specified because the kernel ignores it. Printed 11/26/99 January 25, 1996 3