BEZEICHNUNG
readdir - Verzeichniseintrag lesenBIBLIOTHEK
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 Übersetzer5. Februar 2023 | Linux man-pages 6.03 |