dirent(4) dirent(4)
NAME
dirent - Dateisystem-unabhängiger Verzeichniseintrag
SYNTAX
#include <dirent.h>
BESCHREIBUNG
Die Verzeichniseinträge in den verschiedenen Dateisystem-Typen haben
teilweise ein unterschiedliches Format. Mit der dirent-Struktur wird
ein vom Dateisystem unabhängiger Verzeichniseintrag mit Informationen
definiert, die zu Verzeichniseinträgen in Dateisystemen unterschiedli-
chen Typs passen. Über den Systemaufruf getdents(2) können diese
Strukturen abgerufen werden.
Das folgende Beispiel zeigt die Definition einer dirent-Struktur:
struct dirent
{
inot dino; /* "inode number" of entry */
offt doff; /* offset of disk directory entry */
unsigned short dreclen; /* length of this record */
char dname[1]; /* name of file */
};
dino ist eine Nummer, die einer Datei zugeordnet ist und innerhalb
des Dateisystems nur einmal vorkommt. Das Feld doff ist der Offset
dieses Verzeichniseintrags innerhalb des tatsächlichen Dateisystemver-
zeichnisses. Das Feld dname ist der Anfang eines Zeichen-Arrays, das
den Namen des Verzeichniseintrags angibt. Dieser Name wird mit dem
Null-Zeichen abgeschlossen und darf maximal MAXNAMLEN Zeichen enthal-
ten. Damit erhält man dateisystem-unabhängige Verzeichniseinträge, bei
denen es sich um Einheiten variabler Länge handelt. Der Wert von
dreclen ist die Datensatzlänge dieses Eintrags. Diese Länge ist als
die Anzahl der Bytes definiert, die zwischen dem aktuellen Eintrag und
dem nächsten Eintrag stehen; dadurch wird die nächste Struktur geeig-
net ausgerichtet.
Die folgenden Typen sind als Funktionen deklariert und können ebenso
als Makros definiert sein.
int closedir(DIR *dirp);
DIR *opendir(const char *dirname);
struct dirent *readdir(DIR *dirp);
void rewinddir(DIR *dirp);
void seekdir(DIR *dirp, long int loc);
long int telldir(DIR *dirp);
Die Struktur dirent64 ist in derselben Weise wie die Struktur dirent
definiert, mit Ausnahme der folgenden Komponenten:
ino64t dino; /* "inode number" of entry */
off64t doff; /* offset of disk directory entry */
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
dirent(4) dirent(4)
Folgender Funktionsprototyp kann auch als Makro definiert sein:
struct dirent64 *readdir64(DIR *dirp);
SIEHE AUCH
getdents(2), directory(3C), lfs(5), types(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98