BEZEICHNUNG

readdir - Verzeichniseintrag lesen

BIBLIOTHEK

Standard-C-Bibliothek ( libc, -lc)

ÜBERSICHT

#include <sys/syscall.h>      /* Definition der SYS_*-Konstanten */
#include <unistd.h>
int syscall(SYS_readdir, unsigned int dd,
            struct old_linux_dirent *Verzz, unsigned int Anzahl);
Hinweis: Es gibt in Glibc keine Definition von struct old_linux_dirent; siehe ANMERKUNGEN.

BESCHREIBUNG

Dies ist nicht die Funktion, an der Sie interessiert sind. Unter readdir(3) finden Sie eine POSIX-konforme Schnittstelle zur C-Bibliothek. Diese Seite beschreibt den reinen/puren Kernel-Systemaufruf, der durch getdents(2) ersetzt wurde.
readdir() liest eine old_linux_dirent-Struktur für das Verzeichnis, auf das der Dateideskriptor dd zeigt, in den Puffer, auf den Verzz zeigt. Der Parameter Anzahl wird ignoriert; es wird höchstens eine old_linux_dirent-Struktur gelesen.
Die Struktur old_linux_dirent ist wie folgt (privat in der Linux-Kernel-Datei fs/readdir.c) definiert:

struct old_linux_dirent {
    unsigned long d_ino;     /* Inode-Number */
    unsigned long d_offset;  /* Offset zu diesem  old_linux_dirent */
    unsigned short d_namlen; /* Länge von  d_name */
    char  d_name[1];         /* Dateiname (abgeschlossen mit */
                              /* Nullbyte) */
}

d_ino ist eine Inode-Nummer. d_offset ist der Abstand zwischen dem Anfang des Verzeichnisses und diesem old_linux_dirent. d_reclen ist die Größe von d_name, das abschließende Nulbyte nicht mitgezählt (»\0«). d_name ist ein mit Nullbytes abgeschlossener Dateiname.

RÜCKGABEWERT

Bei Erfolg wird 1 zurückgegeben. Beim Ende des Verzeichnisses wird 0 zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER

EBADF
Unzulässiger Dateideskriptor dd.
EFAULT
Das Argument zeigt aus dem Adressraum des aufrufenden Prozesses heraus.
EINVAL
Ergebnispuffer ist zu klein.
ENOENT
Kein solches Verzeichnis.
ENOTDIR
Dateideskriptor zeigt nicht auf ein Verzeichnis.

STANDARDS

Dieser Systemaufruf ist Linux-spezifisch.

ANMERKUNGEN

Sie müssen die Struktur old_linux_dirent selbst definieren. Allerdings sollten Sie wahrscheinlich stattdessen readdir(3) verwenden.
Dieser Systemaufruf existiert auf X86-64 nicht.

SIEHE AUCH

getdents(2), readdir(3)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Kaufmann <[email protected]>, Helge Kreutzmann <[email protected]>, Martin Eberhard Schauer <[email protected]> und Mario Blättermann <[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer

Recommended readings

Pages related to readdir you should read also: