So überprüfen Sie, ob unter Linux ein Dateiverzeichnis vorhanden ist

青灯夜游
Freigeben: 2022-03-21 13:02:49
Original
9010 Leute haben es durchsucht

View-Methode: 1. Verwenden Sie die Stat-Serienfunktion, falls vorhanden, geben Sie die Strukturinformationen zur Datei zurück. 2. Verwenden Sie die Zugriffsfunktion, die Syntax „access (Dateiverzeichnispfad, F_OK)“. oepndir-Funktion, falls vorhanden. Gibt einen Zeiger zurück oder NULL, wenn er nicht vorhanden ist.

So überprüfen Sie, ob unter Linux ein Dateiverzeichnis vorhanden ist

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Linux prüft, ob das Dateiverzeichnis existiert

1. Stat-Serienfunktionen

 Die Stat-Funktion wird verwendet, um Strukturinformationen zu Dateien zurückzugeben. Die Funktionen der Statistikreihe haben drei Situationen, die jeweils Dateinamen, Dateideskriptoren und symbolischen Linkdateien entsprechen. Die Statistikstruktur beschreibt die Dateiattribute, hauptsächlich einschließlich Dateityp, Dateigröße usw. Die detaillierte Statistikstruktur ist wie folgt:

struct stat {
    mode_t    st_mode;    // file type & mode(permissions)
    ino_t     st_ino;     // i-node number(serial number)
    dev_t     st_dev;     // device number(filesystem)
    dev_t     st_rdev;    // device number for specials files
    nlink_t   st_nlink;   // number of links
    uid_t     st_uid;     // user ID of owner
    gid_t     st_gid;     // group ID of owner
    off_t     st_size;    // size in bytes, for regular files
    time_t    st_atime;   // time of last access
    time_t    st_mtime;   // time of last modification
    time_t    st_ctime;   // time of last file status change
    long      st_blksize; // best I/O block size
    long      st_blocks;  // number of 512-byte blocks allocated
};
Nach dem Login kopieren

Über die Statistik können wir Informationen wie Dateityp und Dateigröße erhalten. Zu den Dateitypen gehören: gewöhnliche Dateien, Verzeichnisdateien, Block-Spezialdateien, Zeichen-Spezialdateien, FIFO, Sockets und symbolische Links. Wenn Sie die Stat-Funktionsreihe verwenden möchten, um festzustellen, ob eine Datei oder ein Verzeichnis vorhanden ist, müssen Sie beim Ausführen der Stat-Funktion, falls die Datei vorhanden ist, weiter bestimmen, ob es sich bei der Datei um eine normale Datei oder eine Verzeichnisdatei handelt.

stat-Serienfunktionen geben im Fehlerfall -1 zurück. Der Wert von errno ist wie folgt:

ENOENT 参数file_name 指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题, 上限为16 符号连接
EFAULT 参数buf 为无效指针, 指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name 的路径名称太长
Nach dem Login kopieren

2. Die Zugriffsfunktion testet die Zugriffsrechte basierend auf der tatsächlichen Benutzer-ID und tatsächliche Gruppe. Der Funktionsprototyp ist:

#include <unistd.h>
int access(const char *pathname, int mode);
Nach dem Login kopieren
mode-Wert:

F_OK Testen Sie, ob die Datei vorhanden ist
  • R_OK Testen Sie die Leseberechtigung
  • W_OK Testen Sie die Schreibberechtigung
  • X_OK Testen Sie die Ausführungsberechtigung
  • Richtig Beurteilung Ob eine Datei existiert oder nicht, wird durch die Zugriffsfunktion bestimmt, die wie folgt implementiert ist:

3. oepndir-Funktion

Die opendir-Funktion wird zum Öffnen des Dateiverzeichnisses verwendet und gibt bei Erfolg einen Zeiger zurück. und NULL bei Fehler. Die Implementierung ist wie folgt:

Verwandte Empfehlungen: „

Linux Video Tutorial

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie, ob unter Linux ein Dateiverzeichnis vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage