Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyemak sama ada direktori fail wujud dalam Linux

Bagaimana untuk menyemak sama ada direktori fail wujud dalam Linux

青灯夜游
青灯夜游asal
2022-03-21 13:02:498985semak imbas

Kaedah melihat: 1. Gunakan fungsi siri stat untuk mengembalikan maklumat struktur yang berkaitan dengan fail jika ia wujud 2. Gunakan fungsi akses, sintaksnya ialah "akses (laluan direktori fail, F_OK)"; . Gunakan fungsi oepndir , mengembalikan penunjuk jika wujud, mengembalikan NULL jika ia tidak wujud.

Bagaimana untuk menyemak sama ada direktori fail wujud dalam Linux

Persekitaran pengendalian tutorial ini: sistem linux5.9.8, komputer Dell G3.

Linux semak sama ada direktori fail wujud

1. Fungsi siri stat

Stat fungsi digunakan untuk mengembalikan maklumat struktur tentang fail. Terdapat tiga situasi dalam fungsi siri stat, sepadan dengan nama fail, deskriptor fail dan fail pautan simbolik. Struktur stat menerangkan atribut fail, terutamanya termasuk jenis fail, saiz fail, dsb. Struktur statistik terperinci adalah seperti berikut:

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
};

Kita boleh mendapatkan maklumat seperti jenis fail dan saiz fail melalui stat. Jenis fail ialah: fail biasa, fail direktori, fail khas blok, fail khas aksara, FIFO, soket dan pautan simbolik. Jika anda ingin menggunakan siri stat fungsi untuk menentukan sama ada fail atau direktori wujud, apabila melaksanakan fungsi stat, jika fail itu wujud, anda perlu menentukan lagi sama ada fail itu adalah fail biasa atau fail direktori.

Ralat fungsi siri stat mengembalikan -1 Kod ralat disimpan dalam errno adalah seperti berikut:

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

2

Fungsi akses menjalankan ujian kebenaran akses berdasarkan ID pengguna sebenar dan kumpulan sebenar. Prototaip fungsi ialah:

#include <unistd.h>
int access(const char *pathname, int mode);
nilai mod:

  • F_OK Uji sama ada fail wujud

  • R_OK Ujian baca kebenaran

  • W_OK Kebenaran menulis ujian

  • X_OK Kebenaran pelaksanaan Ujian

Tentukan dengan betul sama ada fail wujud Fungsi akses digunakan, dan pelaksanaannya adalah seperti berikut:

3 Fungsi oepndir

fungsi opendir digunakan untuk membuka direktori fail, berjaya Mengembalikan penunjuk, atau NULL apabila ralat. Pelaksanaannya adalah seperti berikut:

Cadangan berkaitan: "

Tutorial Video Linux"

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada direktori fail wujud dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn