Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ statvfs(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

chown(2)

creat(2)

link(2)

mknod(2)

pipe(2)

read(2)

time(2)

unlink(2)

utime(2)

write(2)

lfs(5)

statvfs(5)

types(5)

statvfs(2)                                                       statvfs(2)

NAME
     statvfs, fstatvfs, statvfs64, fstatvfs64 - Dateisysteminformationen
     lesen

SYNTAX
     #include <sys/types.h>
     #include <sys/statvfs.h>

     int statvfs(const char *path, struct statvfs *buf);

     int fstatvfs(int fildes, struct statvfs *buf);

     int statvfs64(const char *path, struct statvfs64 *buf);

     int fstatvfs64(int fildes, struct statvfs64 *buf);

BESCHREIBUNG
     statvfs() liefert einen "generischen Superblock", der ein Dateisystem
     beschreibt; dieser kann dazu verwendet werden, um Informationen über
     eingehängte Dateisysteme zu bekommen. buf ist ein Zeiger auf eine
     Struktur, die weiter unten beschrieben wird. Diese Struktur wird wäh-
     rend des Systemaufrufs beschrieben.

     path sollte der Name einer Datei sein, welche sich in dem entsprechen-
     den Dateisystem befindet. Der Dateisystemtyp ist dabei dem Betriebssy-
     stem bekannt. Lese-, Schreib- oder Ausführungsrechte für die angege-
     bene Datei werden nicht benötigt, jedoch muß jedes Verzeichnis aus dem
     Pfadnamen durchsucht werden können.

     Es besteht kein funktionaler Unterschied zwischen statvfs()/fstatvfs()
     und statvfs64()/fstatvfs64(), außer bei der Interpretation von
     statvfs/statvfs64 [siehe statvfs(5)].

     Die Struktur statvfs, auf die buf zeigt, enthält die folgenden Kompo-
     nenten:

     ulongt    fbsize;             /* optimale E/A-Größe für read und
                                        write */
     ulongt    ffrsize;            /* grundlegende Blockgröße des Datei-
                                        systems */
     fsblkcntt fblocks;            /* Gesamtzahl der Blöcke auf dem Datei-
                                        system in Einheiten von ffrsize */
     fsblkcntt fbfree;             /* Gesamtzahl der freien Blöcke in
                                        Einheiten von ffrsize */
     fsblkcntt fbavail;            /* Anzahl der verfügbaren freien Blöcke
                                        für einen Nicht-Systemverwalter in
                                        Einheiten von ffrsize */
     fsfilcntt ffiles;             /* Gesamtzahl der Dateien (I-Nodes) */
     fsfilcntt fffree;             /* Gesamtzahl der freien Knoten */
     fsfilcntt ffavail;            /* Anzahl der I-Nodes für einen
                                        Nicht-Systemverwalter */
     ulongt    ffsid;              /* Dateisystemnummer (momentan dev) */



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

statvfs(2)                                                       statvfs(2)

     char       fbasetype[FSTYPSZ]; /* Typname des Zieldateisystems,
                                        nullterminiert */
     ulongt    fflag;              /* Bitmaske der Optionen */
     ulongt    fnamemax;           /* maximale Länge der Dateinamen */
     char       ffstr[32];          /* Dateisystemspezifische Zeichenkette */
     ulongt    ffiller[16];        /* reserviert für zukünftige Erweite-
                                        rungen */

     fbasetype enthält einen nullterminierten Typnamen des Dateisystems
     (FST-Name) über das eingehängte Ziel (z. B. ufs über nfs eingehängt
     resultiert in ufs).

     Die folgenden Werte können im fflag-Feld zurückgeliefert werden:

     STRDONLY     0x01    /* nur lesbares Dateisystem */
     STNOSUID     0x02    /* setuid/setgid-Semantik wird nicht unterstützt */
     STNOTRUNC    0x04    /* schneidet Dateinamen länger als NAMEMAX
                              nicht ab */

     fstatvfs() ist ähnlich statvfs(), außer daß der Dateiname path aus
     statvfs() über einen offenen Dateideskriptor fildes identifiziert
     wird, der aus einem erfolgreichen open()-, creat()-, dup()-, fcntl()-
     oder pipe()-Systemaufruf resultiert.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     statvfs() und statvfs() schlagen fehl, wenn wenigstens eine der fol-
     genden Bedingungen erfüllt ist:

     EINTR         Ein Signal wurde während der Ausführung der Funktionen
                   empfangen.

     EIO           Beim Lesen vom Dateisystem oder Schreiben auf dieses ist
                   ein E/A-Fehler aufgetreten.

     EOVERFLOW     Einer der zurückzugebenden Werte kann in der Struktur,
                   auf die buf zeigt, nicht korrekt dargestellt werden.

     statvfs() schlägt fehl, wenn wenigstens eine der folgenden Bedingungen
     erfüllt ist:

     EACCES        Eine Komponente des Pfadpräfixes darf nicht durchsucht
                   werden.

     EFAULT        path oder buf weisen über den zugewiesenen Adreßraum des
                   Prozesses hinaus.

     ELOOP         Bei der Auflösung von path wurden zu viele symbolische
                   Links gefunden.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

statvfs(2)                                                       statvfs(2)

     EMULTIHOP     Komponenten von path erfordern den Sprung auf einen fer-
                   nen Rechner, und die Dateisystemtypen erlauben dies
                   nicht.

     ENAMETOOLONG  Die Länge einer Komponente von path überschreitet
                   NAMEMAX, oder die Länge von path überschreitet
                   PATHMAX.

     ENOENT        Entweder eine Komponente des Pfadpräfixes oder die
                   Datei, die durch path bezeichnet wird, existiert nicht.

     ENOLINK       path zeigt auf einen fernen Rechner, und der Verweis auf
                   diesen Rechner ist nicht länger aktiv.

     ENOTDIR       Eine Komponente des Pfadpräfixes von path ist kein Ver-
                   zeichnis.

     Die Funktion statvfs() kann bei folgender Bedingung fehlschlagen:

     ENAMETOOLONG  Die Auflösung des Pfadnamens eines symbolischen Links
                   hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
                   überschreitet.

     fstatvfs() schlägt fehl, wenn wenigstens eine der folgenden Bedingun-
     gen erfüllt ist:

     EFAULT        buf zeigt auf eine ungültige Adresse.

     EBADF         fildes ist kein offener Dateideskriptor.

ERGEBNIS
     Nach erfolgreicher Ausführung wird 0 zurückgegeben. Ansonsten wird der
     Wert -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

HINWEISE
     fstatvfs() und statvfs() schlagen fehl, wenn die Gesamtzahl, die freie
     Anzahl oder die verfügbare Anzahl von Blöcken oder Dateien in der
     zurückzugebenden Struktur (fblocks, fbfree, fbavail, ffiles,
     fffree, ffavail) nicht korrekt dargestellt werden kann.

SIEHE AUCH
     chmod(2), chown(2), creat(2), link(2), mknod(2), pipe(2), read(2),
     time(2), unlink(2), utime(2), write(2), lfs(5), statvfs(5), types(5).











Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026