opendir(3) ein Verzeichnis öffnen

ÜBERSICHT

#include <sys/types.h>
#include <dirent.h>


DIR *opendir(const char *name);
DIR *fdopendir(int fd);

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

fdopendir():

Seit Glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Bis Glibc 2.10:
_GNU_SOURCE

BESCHREIBUNG

Die Funktion opendir() öffnet einen Verzeichnis-Datenstrom der dem Verzeichnis name entspricht und liefert einen Zeiger auf den ersten Eintrag des Verzeichnisses zurück.

Die Funktion fdopendir() ähnelt opendir(), gibt aber eine Folge der Verzeichniseinträge für das Verzeichnis zurück, auf das der Dateideskriptor fd verweist. Nach einem erfolgreichen Aufruf von fdopendir() wird fd intern von der Implementierung benutzt und sollte nicht anderweitig von der Anwendung benutzt werden.

RÜCKGABEWERT

Die Funktionen opendir() und fdopendir() liefern einen Zeiger auf den Verzeichnis-Datenstrom zurück. Bei einem Fehler wird ein NULL zurückgegeben und errno entsprechend gesetzt.

FEHLER

EACCES
Zugriff verweigert
EBADF
fd ist kein gültiger zum Lesen geöffneter Dateideskriptor.
EMFILE
Die Beschränkung pro-Prozess der Anzahl offener Datei-Deskriptoren wurde erreicht.
ENFILE
Die systemweite Beschränkung für die Gesamtzahl offener Dateien wurde erreicht.
ENOENT
Das Verzeichnis existiert nicht oder name ist eine leere Zeichenkette.
ENOMEM
Der Speicher reicht nicht aus, um den Vorgang zu beenden.
ENOTDIR
name ist kein Verzeichnis.

VERSIONEN

fdopendir() ist in Glibc seit Version 2.4 verfügbar.

ATTRIBUTE

Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
SchnittstelleAttributWert
opendir(), fdopendir() Multithread-FähigkeitMT-Safe

KONFORM ZU

opendir() ist auf SVr4 und 4.3BSD vorhanden und in POSIX.1-2001 spezifiziert. fdopendir() ist in POSIX.1-2008 spezifiziert.

ANMERKUNGEN

Dateinameneinträge können mittels readdir(3) aus einem Verzeichnis-Stream gelesen werden.

Der zugrundeliegende Dateideskriptor des Verzeichnis-Datenstroms kann mit dirfd(3) abgefragt werden.

Die Funktion opendir() setzt dem Schalter »close-on-exec« für den Dateideskriptor, der DIR * zugrundeliegt. Die Funktion fopendir() lässt die Einstellung des Schalter »close-on-exec« für den Dateideskriptor fd unverändert. POSIX.1-200x spezifiziert nicht, ob ein erfolgreicher Aufruf von fdopendir() den Schalter »close-on-exec« für den Dateideskriptor fd setzt.

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Markus Kaufmann <[email protected]> und Chris Leick <[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 <[email protected]>.