setmntent(3) Lesen des Eintrags

Other Alias

getmntent, addmntent, endmntent, hasmntopt

ÜBERSICHT

#include <stdio.h>
#include <mntent.h>


FILE *setmntent(const char *filename, const char *type);

struct mntent *getmntent(FILE *stream);

int addmntent(FILE *stream, const struct mntent *mnt);

int endmntent(FILE *streamp);

char *hasmntopt(const struct mntent *mnt, const char *opt);


/* GNU-Erweiterung */
#include <mntent.h>

struct mntent *getmntent_r(FILE *streamp, struct mntent *mntbuf,
char *buf, int buflen);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

getmntent_r():
    Seit Glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 und älter:
        _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 der Dateisystem-Beschreibungsdatei aus stream 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 des offenen stream an.

Die Funktion endmntent() schließt den mit der Dateisystemdeskriptorendatei assoziierten stream.

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

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
SchnittstelleAttributWert
setmntent(), endmntent(), hasmntopt() Multithread-FähigkeitMT-Safe
getmntent() Multithread-FähigkeitMT-Unsafe race:mntentbuf locale
addmntent() Multithread-FähigkeitMT-Safe race:stream locale
getmntent_r() Multithread-FähigkeitMT-Safe locale

KONFORM ZU

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <[email protected]> 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 <[email protected]>.