MOUNT(2)

BEZEICHNUNG
mount, umount - Aufsetzen und Entfernen von Dateisystemen.

SYNTAX
#include <sys/mount.h>
#include <linux/fs.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);

BESCHREIBUNG
mount setzt das durch specialfile angegebene Dateisystem (welches oft eine Geräte-Datei ist), auf das Verzeichnis dir auf. umount entfernt die Dateisystemanbindung specialfile oder dir. Nur der Superuser darf Dateisysteme aufsetzen und entfernen. Das Argument filesystemtype darf nur einen der Werte aus /proc/filesystems (wie "minix", "ext2", "msdos", "proc", "nfs", "iso9660" etc.) annehmen. Das Argument rwflag hat die magic number 0xC0ED in den oberen 16 bit und diverse Mountflags (wie definiert in <linux/fs.h>) in den unteren 16 bit:
#define MS_RDONLY    1 /* setze read-only auf */
#define MS_NOSUID    2 /* ignoriere suid- und sgid-bits */
#define MS_NODEV     4 /* verbiete Zugriff auf Gerätedateien */
#define MS_NOEXEC    8 /* verbiete Programmausführung */
#define MS_SYNC     16 /* Schreibzugriffe werden sofort auf das Medium geschrieben */
#define MS_REMOUNT  32 /* verändere Flags eines aufgesetzen Dateisystems */
#define MS_MGC_VAL 0xC0ED0000
Wenn die magic number nicht vorhanden ist werden die letzten zwei Argumente nicht benutzt. Das Argument data wird von den verschiedenen Dateisystemen interpretiert.

RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER
Die Fehlerwerte unten resultieren aus Dateisystemunabhängigen Fehlern. Jeder Dateisystemtyp kann seine eigenen speziellen Fehlerwerter und seine eigenes spezielles verhalten aufweisen. Siehe Kernel-Quellcode für Details.

EPERM
    The Anwender ist nicht der Superuser.

ENODEV
    Filesystemtype wird nicht vom Kernel unterstüzt.

ENOTBLK
    Specialfile ist kein block device (wenn ein device erforderlich war).

EBUSY
    Specialfile ist bereits aufgesetzt. Oder es kann kann nicht auf read-only umgesetzt werden, weil noch Dateien darauf für Schreibzugriff geöffnet sind. Oder es kann nicht nach dir aufgesetzt werden, weil dir es besetzt ist (es ist Arbeitsverzeichnis eines Prozesses, Aufsatzpunkt eines anderen Gerätes, hat geöffnete Dateien, etc.).

EINVAL
    Specialfile hat einen ungültigen Superblock. Oder es wurde eine Umsetzung versucht, während specialfile noch gar nicht aufgesetzt war auf dir. Oder es wurde ein Absetzen versucht, wobei dir gar nicht aufgesetzt war.

EFAULT
    Einer der pointer arguments zeigt nach ausserhalb des Addressraums des Benutzers.

ENOMEM
    Der Kernel konnte keine freie Seite belegen um Dateinamen oder Daten darin abzuspeichern.

ENAMETOOLONG
    Ein Pfadname war länger als MAXPATHLEN.

ENOENT
    Ein Pfadname war leer oder hatte eine nicht existierende Komponente.

ENOTDIR
    Das zweite Argument oder ein prefix des ersten Arguments ist kein Verzeichnis.

EACCES
    Eine Komponente eines Pfades war nicht durchsuchbar.
    Oder es wurde versucht ein read-only-Dateisystem ohne Angabe des MS_RDONLY-flag aufzusetzen.
    Oder das block device Specialfile befindet sich auf einem Dateisystem, welches mit der Option MS_NODEV aufgesetzt ist.

ENXIO
    Die major number des block device specialfile ist ausserhalb des gültigen Bereichs.

EMFILE
    (Falls kein block device erforderlich ist:) Die Tabelle der dummy devices ist voll.

KONFORM ZU
Diese Funktionen sind ziemlich Linux-spezifisch.

SIEHE AUCH
mount(8), umount(8).