Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

mount - Dateisystem einhängen (Erweiterung)

&pagelevel(4)&pagelevel

Definition

#include <sys/types.h>
#include <sys/mount.h>

int mount(const char *spec, const char *dir, int mflag,

[int fstyp, const char *datptr, size_t datalen]);

Beschreibung

mount() hängt ein aushängbares Dateisystem, das sich in der durch spec gekennzeichneten blockorientierten Gerätedatei befindet, in das bestehende Dateiverzeichnis dir ein (Einhängepunkt).

spec und dir sind Zeiger auf Pfadnamen.

mflag kann folgende Werte annehmen:

MS_FSS

Wenn ein Dateisystemtyp beschrieben werden soll.

MS_DATA

Wenn ein Block dateisystemspezifischer Daten ab der Adresse dataptr mit der Länge datalen beschrieben werden soll.

MS_RDONLY

Wenn das eingehängte Dateisystem nur lesbar sein soll. Es werden keine weiteren Argumente erwartet.

fstyp wird von mount() ausgewertet, wenn entweder MS_FSS oder MS_DATA in mflag gesetzt ist. fstyp ist die Nummer des Dateisystemtyps oder ein Zeiger auf eine Zeichenkette, die den Dateisystemtyp enthält. Der Systemaufruf sysfs() kann zur Bestimmung der Nummer des Dateisystemtyps verwendet werden.

Wenn weder MS_FSS noch MS_DATA in mflag gesetzt ist, verwendet mount() den Dateisystemtyp des Root-Dateisystems.

Wenn MS_DATA in mflag gesetzt ist, erwartet das System die Argumente dataptr und datalen. Diese Daten werden von dateisystemspezifischem Code im Betriebssystem interpretiert; ihr Format hängt vom Dateisystemtyp ab. Ein Dateisystemtyp benötigt diese Daten möglicherweise nicht; in diesem Fall sollten sowohl dataptr als auch datalen auf 0 gesetzt werden.

Nach erfolgreicher Beendigung von mount() zeigt der Name in dir auf das Root-Dateiverzeichnis des neu eingehängten Dateisystems.

Returnwert

0

bei erfolgreicher Beendigung.

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

mount() schlägt fehl, wenn gilt:

 

EBUSY

dir ist zum gegebenen Zeitpunkt bereits eingehängt,
oder dir hat einem anderen Eigentümer,
oder dir ist auf andere Weise belegt,
oder die zu spec gehörende Gerätedatei ist gegenwärtig eingehängt,
oder es stehen keine weiteren Einträge in der Einhängetabelle zur Verfügung.

 

EFAULT

spec, dir oder datalen weisen über den zugewiesenen Adressraum des
Prozesses hinaus.

 

EINVAL

Der Superblock hat eine ungültige Magic Number, oder fstyp ist ungültig.

 

ELOOP

Während der Übersetzung von dir wurden zu viele symbolische Verweise angetroffen.

 

ENAMETOOLONG 



Die Länge des Arguments dir ist größer als {PATH_MAX} oder {NAME_MAX}.

 

ENOENT

Eine der angegebenen Dateien ist unbekannt.

 

ENOSPC

Der Dateisystemstatus im Superblock ist nicht FsOKAY, und mflag fordert das Schreibrecht an.

 

ENOTBLK

spec ist keine blockorientierte Gerätedatei.

 

ENOTDIR

Eine Komponente von spec oder dir ist kein Dateiverzeichnis.

 

ENXIO

Die zu spec gehörende Gerätedatei ist unbekannt.

 

EPERM

Die effektive Benutzernummer ist nicht die eines Prozesses mit Sonderrechten.

 

EREMOTE

spec ist nicht lokal und kann nicht eingehängt werden.

 

EROFS

spec ist schreibgeschützt, und mflag fordert das Schreibrecht an.

Hinweis

mount() darf nur unter der effektiven Benutzernummer eines Prozesses mit Sonderrechten aufgerufen werden.

Sobald ein Dateiverzeichnis eingehängt ist, wird es wie ein Unterbaum behandelt. Prozesse können nun auf Dateien im eingehängten Dateisystem zugreifen, ohne berücksichtigen zu müssen, dass es ein eingehängtes Dateisystem ist. Lediglich Verweise mit link() über Dateisystemgrenzen hinweg sind nicht gestattet, da diese Funktion das Dateisystem einer Datei überprüft.

Die Schnittstelle ist nur für das mount-Kommando vorgesehen. 

Siehe auch

sysfs(), umount(), Kommandos mount, fsck im Handbuch „POSIX-Kommandos“ [2].