Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

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)

fattach(3C)

lfs(5)

stat(5)

types(5)

stat(2)                                                             stat(2)

NAME
     stat, lstat, fstat, stat64, lstat64, fstat64 - Dateistatus abrufen

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

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

     int lstat(const char *path, struct stat *buf);

     int fstat(int fildes, struct stat *buf);

     int fstat64(int fildes, struct stat64 *buf);

     int lstat64(const char *, struct stat64 *buf);

     int stat64(const char *, struct stat64 *buf);

BESCHREIBUNG
     Die Funktion stat() erhält Informationen über die angegebene Datei und
     schreibt sie in die Struktur, auf die buf zeigt. path weist auf einen
     Pfadnamen, der die Datei benennt. Eine Lese-, Schreib- oder Ausfüh-
     rungserlaubnis für die angegebene Datei ist nicht erforderlich, jedoch
     müssen alle im zur Datei führenden Pfadnamen aufgelisteten Verzeich-
     nisse durchsuchbar sein.

     lstat() liefert genau wie stat() Dateiattribute. Nur wenn die angege-
     bene Datei ein symbolischer Verweis ist, gibt lstat() Informationen
     über den Verweis aus, während stat() Informationen über die Datei aus-
     gibt, auf die sich der Verweis bezieht.

     fstat() liefert Informationen über eine offene Datei mit einem Datei-
     deskriptor fildes, der von einem erfolgreichen Systemaufruf open(),
     creat(), dup(), fcntl() oder pipe() geliefert wird.

     buf ist ein Zeiger auf eine stat-Struktur, in die die jeweilige Datei
     betreffenden Informationen geschrieben werden.

     Es besteht kein funktionaler Unterschied zwischen stat()/lstat()/fstat()
     und stat64()/lstat64()/fstat64(), außer bei der Interpretation von
     stat/stat64 [siehe lfs(5)].

     Zum Inhalt der Struktur stat, auf die von buf gewiesen wird, gehören
     folgende Elemente:

     modet    stmode;    /* Dateimodus [siehe mknod(2)] */
     inot     stino;     /* Dateikennziffer (I-Node) */
     devt     stdev;     /* Gerätekennung, die einen Verzeichniseintrag
                              für diese Datei enthält */
     devt     strdev;    /* Gerätekennung, nur für zeichen- oder
                              blockorientierte Gerätedateien definiert */



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

stat(2)                                                             stat(2)

     nlinkt   stnlink;   /* Anzahl der Verweise */
     uidt     stuid;     /* Benutzerkennung des Dateibesitzers */
     gidt     stgid;     /* Gruppenkennung des Dateibesitzers */
     offt     stsize;    /* Dateigröße in Bytes */
     timet    statime;   /* Zeit des letzten Zugriffs */
     timet    stmtime;   /* Zeit der letzten Datenänderung */
     timet    stctime;   /* Zeit der letzten Änderung des Dateistatus
                              Die Zeit wird in Sekunden gemessen ab dem
                              1. Januar 1970, 00:00:00 Uhr */
     long      stblksize; /* Bevorzugte E/A-Blockgröße */
     blkcntt  stblocks;  /* Anzahl zugewiesener 512-Byte-Blöcke */

     Die Struktur stat64 ist in derselben Weise wie die Struktur stat defi-
     niert, mit Ausnahme der folgenden Komponenten:

     ino64t stino          I-Node.

     off64t stsize         Dateigröße in Bytes.

     blkcnt64t stblocks    Anzahl der für dieses Objekt zugeordneten
                             Blöcke.

     stmode     Der Modus der Datei ist im Systemaufruf mknod(2) beschrie-
                 ben. Zusätzlich zu den in mknod(2) beschriebenen Modi,
                 kann der Modus einer Datei auch SIFLNK sein, wenn die
                 Datei ein symbolischer Verweis ist. (Beachten Sie, daß
                 SIFLNK nur von lstat() zurückgegeben werden kann.)

     stino      Kennzeichnet die Datei im gegebenen Dateisystem eindeutig.
                 Das Paar stino und stdev kennzeichnet reguläre Dateien
                 eindeutig.

     stdev      Kennzeichnet das Dateisystem, in dem die Datei liegt, ein-
                 deutig. Der Wert kann als Eintrag für den Systemaufruf
                 ustat(2) zur Bestimmung von weiteren Informationen über
                 dieses Dateisystem verwendet werden.

     strdev     Darf nur von Verwaltungskommandos benutzt werden. Es ist
                 nur für block- oder zeichenorientierte Dateien gültig und
                 hat nur in dem System eine Bedeutung, in dem die Datei
                 eingereicht wurde.

     stnlink    Darf nur von Verwaltungskommandos benutzt werden.

     stuid      Benutzernummer des Eigentümers der Datei.

     stgid      Gruppennummer der Gruppe, der die Datei zugeordnet ist.

     stsize     Für reguläre Dateien ist dies die Größe der Datei in
                 Bytes. Für block- oder zeichenorientierte Dateien ist die-
                 ses nicht definiert. Siehe auch pipe(2).



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

stat(2)                                                             stat(2)

     statime    Uhrzeit, zu der zuletzt auf die Dateidaten zugegriffen
                 wurde. Wird von folgenden Systemaufrufen geändert:
                 creat(), mknod(), pipe(), utime() und read().

     stmtime    Uhrzeit, zu der Daten zuletzt geändert wurden. Wird von
                 folgenden Systemaufrufen geändert: creat(), mknod(),
                 pipe(), utime() und write().

     stctime    Dies ist die Uhrzeit, zu der der Dateistatus zuletzt geän-
                 dert wurde. Wird von folgenden Systemaufrufen geändert:
                 chmod(), chown(), creat(), link(), mknod(), pipe(),
                 unlink(), utime() und write().

     stblksize  Ein Hinweis auf die "beste" Größe einer Einheit für E/A-
                 Operationen. Dieses Feld ist für block- oder zeichenorien-
                 tierte Gerätedateien nicht definiert.

     stblocks   Die Gesamtanzahl von physischen Blöcken der Größe 512
                 Byte, die zur Zeit auf der Platte belegt sind. Dieses Feld
                 ist für block- oder zeichenorientierte Gerätedateien nicht
                 definiert.

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

     stat() und lstat() sind erfolglos, wenn einer oder mehrere der nach-
     stehenden Punkte zutreffen:

     EACCES        Eine Komponente des Pfades darf nicht durchsucht werden.

     EFAULT        buf oder path weisen auf eine ungültige Adresse.

     EINTR         Ein Signal wurde während des Systemaufrufs stat() oder
                   lstat() abgefangen.

     ELOOP         Bei der Übersetzung von path wurden zuviele symbolische
                   Verweise angetroffen.

     EMULTIHOP     Die Komponenten von path erfordern den Sprung auf meh-
                   rere ferne Rechner, und das Dateisystem erlaubt das
                   nicht.

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

     ENOENT        Die angegebene Datei ist nicht vorhanden oder ist der
                   Null-Pfadname.

     ENOTDIR       Eine Komponente des Pfades ist kein Verzeichnis.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

stat(2)                                                             stat(2)

     ENOLINK       path weist auf einen fernen Rechner, und die Verbindung
                   zu diesem Rechner ist nicht mehr aktiv.

     EOVERFLOW     Eine Komponente ist zu groß, um in der Struktur, auf die
                   buf zeigt, gespeichert zu werden.

                   Die Dateigröße in Bytes oder die Anzahl der der Datei
                   zugeordneten Blöcke oder die I-Node-Nummer der Datei
                   kann in der Struktur, auf die buf zeigt, nicht korrekt
                   dargestellt werden.

     fstat() ist erfolglos, wenn einer oder mehrere der nachstehenden
     Punkte zutreffen:

     EBADF         fildes ist kein gültiger offener Dateideskriptor.

     EFAULT        buf weist auf eine ungültige Adresse.

     EINTR         Ein Signal wurde während des Systemaufrufs fstat() abge-
                   fangen.

     ENOLINK       fildes weist auf einen fernen Rechner, und die Verbin-
                   dung zu diesem Rechner ist nicht mehr aktiv.

     EOVERFLOW     Eine Komponente ist zu groß, als daß sie in der Struk-
                   tur, auf die buf zeigt, gespeichert werden könnte.

                   Die Dateigröße in Bytes oder die Anzahl der der Datei
                   zugeordneten Blöcke oder die I-Node-Nummer der Datei
                   kann in der Struktur, auf die buf zeigt, nicht korrekt
                   dargestellt werden.

ERGEBNIS
     Nach erfolgreicher Beendigung wird ein Wert von 0 zurückgegeben.
     Andernfalls wird ein Wert von -1 zurückgegeben, und errno wird zur
     Anzeige des Fehlers gesetzt.

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













Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

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