Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

readdir_r, readdir64_r - aus Dateiverzeichnis threadsicher lesen

&pagelevel(4)&pagelevel

Definition

#include <sys/types.h>

#include <dirent.h>

int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
int readdir64_r(DIR *dirp, struct dirent64 *entry, struct dirent64 **result);

Beschreibung

Die Funktion readdir_r() ist die tread-sichere Version der Funktion readdir().

Die Funktion readdir_r() initialisiert die Struktur dirent, auf die entry verweist, mit dem nächsten, nichtleeren Dateiverzeichniseintrag im Dateiverzeichnisstrom, auf den dirp zeigt, speichert einen Zeiger auf diese Struktur an der Stelle, auf die result zeigt, ab und positioniert den Dateiverzeichnisstrom auf den nächsten Eintrag.

Der Speicher, auf den entry zeigt, muss groß genug sein, um für das char-Feld d_name aus der Struktur dirent schlimmstenfalls {NAME_MAX} plus ein Zeichen aufnehmen zu können.

Bei erfolgreicher Rückkehr besitzt der Zeiger, der für *result zurückgegeben wurde, denselben Wert wie das Argument entry. Wenn das Ende des Dateiverzeichnisstroms erreicht ist, hat dieser Zeiger den Wert NULL.

Die Funktion readdir_r() liefert keine Dateiverzeichniseinträge zurück, die leere Namen enthalten.

readdir_r() kann mehrere Dateiverzeichniseinträge bei einer einzelnen Leseoperation zwischenspeichern; readdir_r() aktualisiert die Strukturkomponente st_atime des Dateiverzeichnisses jedes Mal, wenn das Dateiverzeichnis wirklich gelesen wird.

Returnwert

0

bei Erfolg.

 

Fehlernummer

 


sonst, um den Fehler anzuzeigen. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

Die Funktion readdir_r() schlägt fehl, wenn gilt:


EBADF

Das Argument dirp verweist nicht auf einen offenen Dateiverzeichnisstrom.

Siehe auch

readdir(), dirent(), types().