readdir_r(3) readdir_r(3)
NAME
readdirr - Verzeichnis thread-sicher lesen
SYNTAX
#include <sys/types.h>
#include <dirent.h>
int readdirr(DIR *dirp, struct dirent *entry,
struct dirent **result);
BESCHREIBUNG
Die Funktion readdirr() ist die tread-sichere Version der Funktion
readdir().
Die Funktion readdirr() initialisiert die Struktur dirent, auf die
entry verweist, um den Verzeichniseintrag an der aktuellen Position im
Verzeichnis-Stream darzustellen, auf den dirp zeigt, speichert einen
Zeiger auf diese Struktur an der Adresse, auf die result verweist, und
positioniert den Verzeichnis-Stream auf den nächsten Eintrag.
Der Speicher, auf den entry zeigt, ist groß genug für einen Verzeich-
niseintrag dirent mit einem Array von char dname, das zumindest
NAMEMAX Elemente plus eins enthält.
Bei erfolgreicher Ausführung hat der zurückgegebene Zeiger den glei-
chen Wert wie der Argumenteintrag. Wenn das Ende des Verzeichnis-
Stream erreicht wird, hat dieser Zeiger den Wert NULL.
Die Funktion readdirr() gibt keine Verzeichniseinträge mit leeren
Namen zurück. Es ist nicht angegeben, ob die Einträge für Punkt- oder
Punkt-Punkt-Schreibweise zurückgegeben werden.
Wenn eine Datei nach dem letzten Aufruf von opendir() oder rewinddir()
aus dem Verzeichnis entfernt oder zu diesem hinzugefügt wird, ist
nicht definiert, ob ein nachfolgender Aufruf von readdirr() einen
Eintrag an diese Datei zurückgibt.
Die Funktion readdirr() kann mehrere Verzeichniseinträge pro Lesevor-
gang in den Puffer schreiben. Jedesmal, wenn das Verzeichnis tatsäch-
lich gelesen wird, markiert die Funktion readdirr() das Feld statime
des Verzeichnisses zur Aktualisierung.
RÜCKGABEWERTE
Bei erfolgreicher Ausführung gibt die Funktion readdirr() den Wert
Null zurück. Andernfalls wird eine Fehlernummer zurückgegeben, um den
Fehler anzuzeigen.
FEHLER
Die Funktion readdirr() kann bei folgender Bedingung fehlschlagen:
EBADF Das Argument dirp verweist nicht auf einen offenen
Verzeichnis-Stream.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
readdir_r(3) readdir_r(3)
SIEHE AUCH
readdir(3C), dirent(4), types(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98