mount, umount - mount and unmount filesystems.
#include <linux/fs.h> /* very unwise */
int mount(const char *specialfile, const char * dir , const
char * filesystemtype, unsigned long rwflag , const void *
int umount(const char *specialfile));
int umount(const char *dir));
mount attaches the filesystem specified by specialfile
(which is often a device name) to the directory specified by
umount removes the attachment of the filesystem specified by
specialfile or dir.
Only the super-user may mount and unmount filesystems.
The filesystemtype argument may take one of the values
listed in /proc/filesystems (like "minix", "ext2", "msdos",
"proc", "nfs", "iso9660" etc.).
The rwflag argument has the magic number 0xC0ED in the top
16 bits, and various mount flags (as defined in
<linux/fs.h>) in the low order 16 bits:
#define MS_RDONLY 1 /* mount read-only */
#define MS_NOSUID 2 /* ignore suid and sgid bits */
#define MS_NODEV 4 /* disallow access to device special files */
#define MS_NOEXEC 8 /* disallow program execution */
#define MS_SYNC 16 /* writes are synced at once */
#define MS_REMOUNT 32 /* alter flags of a mounted FS */
#define MS_MGC_VAL 0xC0ED0000
If the magic number is absent, then the last two arguments
are not used.
The data argument is interpreted by the different file sys-
On success, zero is returned. On error, -1 is returned, and
errno is set appropriately.
The error values given below result from filesystem type
independent errors. Each filesystem type may have its own
special errors and its own special behavior. See the kernel
source code for details.
EPERM The user is not the super-user.
ENODEV Filesystemtype not configured in the kernel.
ENOTBLK Specialfile is not a block device (if a device was
EBUSY Specialfile is already mounted. Or, it cannot be
remounted read-only, because it still holds files
open for writing. Or, it cannot be mounted on dir
because dir is still busy (it is the working direc-
tory of some task, the mount point of another dev-
ice, has open files, etc.).
EINVAL Specialfile had an invalid superblock. Or, a
remount was attempted, while specialfile was not
already mounted on dir. Or, an umount was
attempted, while dir was not a mount point.
EFAULT One of the pointer arguments points outside the user
ENOMEM The kernel could not allocate a free page to copy
filenames or data into.
A pathname was longer than MAXPATHLEN.
ENOENT A pathname was empty or had a nonexistent component.
ENOTDIR The second argument, or a prefix of the first argu-
ment, is not a directory.
EACCES A component of a path was not searchable.
Or, mounting a read-only filesystem was attempted
without giving the MS_RDONLY flag.
Or, the block device Specialfile is located on a
filesystem mounted with the MS_NODEV option.
ENXIO The major number of the block device specialfile is
out of range.
EMFILE (In case no block device is required:) Table of
dummy devices is full.
These functions are Linux-specific and should not be used in
programs intended to be portable.