Available in

(2) (3) (2)/de (3)/de (2)/es (3)/es (2)/fr (3)/fr (2)/ja (3)/ja (2)/ko (3)/ko (2)/nl (2)/pl (2)/pt (3)/pt

Contents

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).

COMMENTS

blog comments powered by Disqus