Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Semak sama ada Direktori Wujud dalam Unix Menggunakan stat() dan lstat()?
Menyemak Kewujudan Direktori dalam Unix: Menggunakan stat() dan lstat() Panggilan Sistem
Menentukan sama ada direktori tertentu wujud ialah tugas biasa dalam pengaturcaraan Unix. Walaupun fungsi seperti opendir() boleh menunjukkan kehadiran direktori melalui pengendalian ralat, ia mungkin bukan pendekatan yang ideal untuk hanya mengesahkan kewujudan. Artikel ini membentangkan cara yang cekap untuk menyelesaikan tugas ini menggunakan panggilan sistem stat() dan lstat().
stat() dan lstat()
Stat() dan fungsi lstat() menyediakan maklumat berharga tentang kewujudan dan jenis fail berdasarkan nama laluannya. Tidak seperti opendir(), fungsi ini tidak membuka fail sebaliknya mengumpulkan data tentang atributnya. Perbezaan utama antara stat() dan lstat() terletak pada cara mereka mengendalikan pautan simbolik.
Untuk mengesahkan sama ada fail ialah direktori, makro S_ISDIR() digunakan bersama dengan stat() atau lstat(). Coretan kod berikut menunjukkan penggunaannya:
#include <sys/stat.h> struct stat sb; if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) { // Directory exists and is accessible }
Semakan Jenis Fail Tambahan
Selain daripada direktori, pelbagai jenis fail lain boleh disahkan menggunakan makro S_IS* tertentu. Berikut ialah senarai komprehensif:
Memahami makro ini membolehkan semakan jenis fail serba boleh dalam program Unix anda.
Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Direktori Wujud dalam Unix Menggunakan stat() dan lstat()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!