mount, umount - mount and unmount filesystems.


SYNOPSIS

       #include <sys/mount.h>

       int  mount(const  char  *specialfile,  const  char * dir ,
       const char * filesystemtype, unsigned long rwflag ,  const
       void * data);

       int umount(const char *specialfile);

       int umount(const char *dir);


DESCRIPTION

       mount  attaches  the  filesystem  specified by specialfile
       (which is often a device name) to the directory  specified
       by dir.

       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> for libc4 and libc5 and in <sys/mount.h>  for
       glibc2) 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
       systems.



RETURN VALUE

       On  success,  zero is returned.  On error, -1 is returned,
       and errno is set appropriately.


ERRORS

       The error values given below result from  filesystem  type
       independent  errors. Each filesystem type may have its own


       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
              required).

       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
              device, 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 address space.

       ENOMEM The  kernel  could not allocate a free page to copy
              filenames or data into.

       ENAMETOOLONG
              A pathname was longer than MAXPATHLEN.

       ENOENT A pathname was empty or had  a  nonexistent  compo­
              nent.

       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.


CONFORMING TO

       These functions are Linux-specific and should not be  used
       mount(8), umount(8)