BEZEICHNUNG¶
getmntent, setmntent, addmntent, endmntent, hasmntopt - Lesen des Eintrags in
der Dateisystem-Beschreibungsdatei
ÜBERSICHT¶
#include <stdio.h>
#include <mntent.h>
FILE *setmntent(const char *filename, const char *type);
struct mntent *getmntent(FILE *fp);
int addmntent(FILE *fp, const struct mntent *mnt);
int endmntent(FILE *fp);
char *hasmntopt(const struct mntent *mnt, const char *opt);
/* GNU-Erweiterung */
#include <mntent.h>
struct mntent *getmntent_r(FILE *fp, struct mntent *mntbuf,
char *buf, int buflen);
Mit Glibc erforderliche Makros (siehe
feature_test_macros(7)):
getmntent_r(): _BSD_SOURCE || _SVID_SOURCE
BESCHREIBUNG¶
Diese Routinen werden benutzt, um auf die Dateien
/etc/fstab und
/etc/mtab zuzugreifen. Erstere beschreibt die Dateisysteme, letztere
die aktuell eingehängten Dateisysteme.
Die Funktion
setmntent() öffnet die Dateisystem-Beschreibungsdatei
filename und liefert einen Dateizeiger zurück, der von
getmntent() benutzt werden kann. Das Argument
type ist die Art
des benötigten Zugriffs und kann dieselben Werte annehmen wie das
mode-Argument von
fopen(3).
Die Funktion
getmntent() liest die nächste Zeile aus der
Dateisystem-Beschreibungsdatei
fp und liefert einen Zeiger auf eine
Struktur zurück, welche die einzelnen Felder der gelesenen Zeile
enthält. Der Zeiger weist zu einem statischen Speicherbereich, der von
den folgenden Aufrufen von
getmntent() wieder überschrieben wird.
Die Funktion
addmntent() fügt die
mntent-Struktur an das Ende
der offenen Datei
fp an.
Die Funktion
endmntent() schließt die Dateisystem-Beschreibungsdatei
fp.
Die Funktion
hasmntopt() durchsucht das Feld
mnt_opts (siehe
unten) der
mntent-Struktur
mnt nach einer Teilzeichenkette, die
zu
opt passt. Gültige Optionen finden Sie unter
<mntent.h> und in
mount(8).
Die ablaufinvariante Funktion
getmntent_r() ähnelt
getmntent(), speichert aber die
struct mount im bereitgestellten
*mntbuf und die Zeichenketten, auf welche die Einträge in dieser
Struktur zeigen, im Array
buf der Größe
buflen.
Die Struktur
mntent wird in
<mntent.h> wie folgt definiert:
struct mntent {
char *mnt_fsname; /* Name des eingehängten Dateisystems */
char *mnt_dir; /* Präfix des Dateisystempfads */
char *mnt_type; /* Typ des Dateisystems (siehe mntent.h) */
char *mnt_opts; /* Mount-Optionen (siehe mntent.h) */
int mnt_freq; /* Dump-Häufigkeit in Tagen */
int mnt_passno; /* Durchgangsnummer beim parallelen fsck */
};
Da die Felder in den Dateien mtab und fstab durch Leerräume getrennt sind,
werden oktale Escape-Zeichen verwendet, um die vier Zeichen Leerzeichen
(\040), Tabulator (\011), Zeilenumbruch (\012) und
Rückwärtsschrägstrich (\134) in diesen Dateien darzustellen,
wenn sie in einer der vier Zeichenketten in einer
mntent-Struktur
auftreten. Die Routinen
addmntent() und
getmntent() wandeln die
Darstellung der Zeichenketten mit und ohne Escape-Zeichen ineinander um.
RÜCKGABEWERT¶
Die Funktionen
getmntent() und
getmntent_r() geben einen Zeiger
auf die
mntent-Struktur zurück oder NULL bei einem Fehler.
Die Funktion
addmntent() liefert bei Erfolg eine 0 zurück, bei einem
Fehler dagegen eine 1.
Die Funktion
endmntent() liefert immer eine 1 zurück.
Die Funktion
hasmntopt() liefert die Adresse der Teilzeichenkette
zurück, wenn eine Entsprechung gefunden wurde; ansonsten NULL.
DATEIEN¶
/etc/fstab Dateisystem-Beschreibungsdatei
/etc/mtab Liste der aktuell eingehängten Dateisysteme
Die nicht ablaufinvarianten Funktionen stammen aus SunOS 4.1.3. Eine Routine
getmntent_r() wurde in HP-UX 10 eingeführt, aber sie gibt einen
int zurück. Den oben erwähnten Prototyp gibt es nur in der
Glibc.
ANMERKUNGEN¶
Auch System V verfügt über eine
getmntent()-Funktion, aber die
Aufrufreihenfolge und die zurückgegebene Struktur sind anders. Unter
System V wird
/etc/mnttab verwendet. In 4.4BSD und Digital UNIX gibt es
eine Routine
getmntinfo(), einen Wrapper um den Systemaufruf
getfsstat().
SIEHE AUCH¶
fopen(3),
fstab(5),
mount(8)
KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
gemeldet werden können, finden sich unter
http://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird
KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.