Heim >Backend-Entwicklung >C++ >Wie kann ich feststellen, ob ein Verzeichnis unter Unix vorhanden ist?
Überprüfen der Verzeichnisexistenz unter Unix
Unter Unix ist die Feststellung der Existenz eines Verzeichnisses für verschiedene Vorgänge von entscheidender Bedeutung. Im Gegensatz zu opendir(), das nur bei einem Fehler die Nichtexistenz eines Verzeichnisses aufdeckt, gibt es Systemaufrufe, die speziell darauf ausgelegt sind, das Vorhandensein eines Verzeichnisses festzustellen.
Um diesem Bedarf gerecht zu werden, bieten POSIX-Systeme zwei Funktionen: stat () und lstat(). Beide Funktionen liefern Informationen über den angegebenen Pfadnamen, einschließlich seines Typs. Allerdings folgt stat() symbolischen Links, während lstat() dies nicht tut.
Um mit stat() zu überprüfen, ob ein Verzeichnis existiert:
#include <sys/stat.h> struct stat sb; if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) { // Directory exists }
Das Makro S_ISDIR() bestätigt den Dateityp als Verzeichnis. Ebenso können andere Dateitypen mithilfe entsprechender S_IS*-Makros überprüft werden.
Fazit:
stat() und lstat() bieten eine bequeme und umfassende Möglichkeit, die zu ermitteln Existenz und Typ einer Datei oder eines Verzeichnisses in Unix, was eine nahtlose Abwicklung dateisystembezogener Vorgänge ermöglicht.
Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob ein Verzeichnis unter Unix vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!