Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getdents(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

directory(3C)

dirent(4)

getdents(2)                                                     getdents(2)

NAME
     getdents - Dateiverzeichnis-Einträge umwandeln

SYNTAX
     #include <sys/dirent.h>

     int getdents(int fildes, struct dirent *buf, sizet nbyte);

BESCHREIBUNG
     fildes ist ein Dateideskriptor, der von einem open(2)- oder dup(2)-
     Systemaufruf geliefert wird.

     getdents() versucht, nbyte Bytes aus dem zu fildes gehörenden Datei-
     verzeichnis zu lesen und diese als vom Dateisystem unabhängige
     Dateiverzeichnis-Einträge in den Puffer zu bringen, auf den buf zeigt.
     Da die vom Dateisystem unabhängigen Dateiverzeichnis-Einträge unter-
     schiedlich lang sind, ist die tatsächliche Anzahl zurückgegebener
     Bytes in den meisten Fällen wesentlich kleiner als nbyte. Sehen Sie in
     dirent(4) nach, um die Anzahl der Bytes zu berechnen.

     Der dateisystemunabhängige Dateiverzeichnis-Eintrag wird durch die
     Struktur dirent angegeben. Eine Beschreibung hiervon ist in dirent(4)
     zu finden.

     Bei Geräten, die positionieren können, beginnt getdents() an der
     Stelle in der Datei, die durch den fildes zugeordneten Schreib-
     /Lesezeiger angegeben wird. Nach Rückkehr von getdents() wird der
     Schreib-/Lesezeiger erhöht, damit er auf den nächsten
     Dateiverzeichnis-Eintrag zeigt.

     Dieser Systemaufruf wurde für die Implementierung der Funktion read-
     dir() entwickelt (eine Beschreibung ist in directory(3C) zu finden)
     und sollte daher nicht für andere Zwecke verwendet werden.

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

     EBADF      fildes ist kein zum Lesen geöffneter, gültiger Dateide-
                skriptor.

     EFAULT     buf weist über den zugewiesenen Adreßraum hinaus.

     EINVAL     nbyte ist für einen Dateiverzeichnis-Eintrag nicht groß
                genug.

     ENOENT     Der aktuelle Schreib-/Lesezeiger für das Dateiverzeichnis
                befindet sich nicht auf einem gültigen Eintrag.








Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

getdents(2)                                                     getdents(2)

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

     ENOTDIR    fildes ist kein Dateiverzeichnis.

     EIO        Während des Zugriffs auf das Dateisystem ist ein E/A-Fehler
                aufgetreten.

ERGEBNIS
     Nach erfolgreicher Beendigung wird eine nicht negative ganze Zahl
     zurückgegeben, die die Anzahl der tatsächlich gelesenen Bytes angibt.
     Der Wert 0 zeigt an, daß das Ende des Dateiverzeichnisses erreicht
     wurde. War der Systemaufruf erfolglos, wird -1 zurückgegeben und errno
     zur Anzeige des Fehlers gesetzt.

SIEHE AUCH
     directory(3C), dirent(4).





































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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