Manual del Programador de Linux (2)
4 noviembre 1996
 

NOMBRE

mount, umount - monta y desmonta sistemas de ficheros.  

SINOPSIS

#include <sys/mount.h>

int mount(const char *fespecial, const char * dir , const char * tiposf, unsigned long le , const void * datos);

int umount(const char *fespecial);

int umount(const char *dir);  

DESCRIPCIÓN

mount

engarza el sistema de ficheros especificado por fespecial (que es frecuentemente un nombre de dispositivo) al directorio especificado por dir.

umount desengancha el sistema de ficheros especificado por fespecial o dir.

Sólo el super-usuario puede montar y desmontar sistemas de ficheros.

El argumento tiposf puede tomar cualquier valor de los listados en /proc/filesystems (como "minix", "ext2", "msdos", "proc", "nfs", "iso9660", etc.).

El argumento le tiene el número mágico 0xC0ED en los últimos 16 bits, y varias opciones de montaje (como las definidas en <linux/fs.h> para libc4 y libc5 y en <sys/mount.h> para glibc2) en los primeros 16 bits:

#define MS_RDONLY    1 /* montar para lectura exclusiva */
#define MS_NOSUID    2 /* no tener en cuenta los bits suid ni sgid */
#define MS_NODEV     4 /* no permitir acceso a ficheros especiales
                          de dispositivo */
#define MS_NOEXEC    8 /* no permitir ejecución de programas */
#define MS_SYNC     16 /* las escrituras se vuelcan a disco
                          inmediatamente */
#define MS_REMOUNT  32 /* alterar opciones de un SF ya montado */
#define MS_MGC_VAL  0xC0ED0000

Si el número mágico está ausente, los dos últimos argumentos no se utilizan.

El argumento datos es interpretado por cada diferente sistema de ficheros.

 

VALOR DEVUELTO

En caso de éxito se devuelve 0. En caso de error, -1, y se da a errno un valor apropiado.  

ERRORES

Los valores de error dados más abajo son independientes del tipo de sistema de ficheros. Cada tipo de sistemas de ficheros puede tener sus propios errores especiales y comportamiento. Consulte los fuentes del núcleo para los detalles.

EPERM
El usuario no es el super-usuario.
ENODEV
tiposf no configurado en el núcleo.
ENOTBLK
fespecial no es un dispositivo de bloque (si se necesitaba un dispositivo).
EBUSY
fespecial ya está montado. O no puede remontarse para lectura exclusiva, porque ya contiene ficheros abiertos para escritura. O no puede montarse en dir porque dir ya está ocupado (es el directorio de trabajo de alguna tarea, el punto de montaje de otro dispositivo, tiene ficheros abiertos, etc.).
EINVAL
fespecial tiene un superbloque inválido. O se ha intentado volver a montar, pero fespecial no estaba ya montado en dir. O se ha intentado desmontar, pero dir no era un punto de montaje.
EFAULT
Uno de los argumentos de tipo puntero apunta afuera del espacio de direcciones de usuario.
ENOMEM
El núcleo no pudo obtener una página libre para copiar en ella nombres de ficheros o datos.
ENAMETOOLONG
Un nombre de camino era más largo que MAXPATHLEN.
ENOENT
Un nombre de camino estaba vacío o tenía un componente inexistente.
ENOTDIR
El segundo argumento, o un prefijo del primero, no es un directorio.
EACCES
Un componente del camino era inaccesible.
O se intentó montar un sistema de ficheros para lectura exclusiva sin dar la opción MS_RDONLY.
O el dispositivo de bloques fespecial estaba en un sistema de ficheros montado con la opción MS_NODEV.
ENXIO
El número mayor del dispositivo de bloques fespecial está fuera de rango.
EMFILE
(En caso de que no se necesite un dispositivo de bloques:) La tabla de dispositivos ficticios está llena.
 

CONFORME A

Estas funciones son específicas de Linux y no deberían emplearse en programas pretendidamente transportables.  

VÉASE TAMBIÉN

mount

(8), umount(8)

Nuevo comentario