readdir

Autres langues

Langue: de

Version: 2. Juni 1996 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

BEZEICHNUNG

readdir - liest einen Verzeichniseintrag

ÜBERSICHT


#include <unistd.h>

#include <linux/dirent.h>

#include <linux/unistd.h>



_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);



int readdir(unsigned int fd, struct dirent *dirp, unsigned int count);

BESCHREIBUNG

Dies ist nicht die Funktion, an der sie interessiert sind. Unter readdir(3) finden sie eine POSIX-konforme C-Funktion. Diese Seite beschreibt den rohen Kernelsystemaufruf, der sich jederzeit ändern kann und durch getdents(2) ersetzt wurde.

readdir liest eine dirent-Struktur von dem Verzeichnis auf das die Variable fd zeigt in den Speicher an die Stelle auf die dirp zeigt. Der Parameter count wird ignoriert; es wird höchstens eine dirent-Struktur gelesen.

Die dirent-Struktur ist wie folgt deklariert:


struct dirent

{

    long d_ino;                 /* inode Nummer */

    off_t d_off;                /* Offset zu diesem dirent */

    unsigned short d_reclen;    /* Länge von d_name */

    char d_name [NAME_MAX+1];   /* Dateiname (Null-terminiert) */

}

d_ino ist eine Inode-Nummer. d_off ist der Abstand zwischen dem Beginn des Verzeichnisses und diesem dirent. d_reclen ist die Länge von d_name, den abschließenden Null-terminator nicht mitgezählt. d_name ist ein Null-terminierter Dateiname.

RÜCKGABEWERT

Bei Erfolg wird eine 1 zurückgeliefert. Beim Ende eines Verzeichnisses wird eine 0 zurückgeliefert. Beim Auftreten eines Fehlers wird -1 zurückgeliefert und errno entsprechend gesetzt.

FEHLER

EBADF
Ungültiger Dateideskriptor fd.
ENOTDIR
Dateideskriptor zeigt nicht auf ein Verzeichnis.

KONFORM ZU

Dieser Systemaufruf ist Linuxspezifisch.

SIEHE AUCH

getdents(2), readdir(3).