Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Semak Kewujudan Direktori dalam Unix Menggunakan Panggilan Sistem?

Bagaimana untuk Semak Kewujudan Direktori dalam Unix Menggunakan Panggilan Sistem?

Barbara Streisand
Barbara Streisandasal
2024-11-07 13:09:03795semak imbas

How to Check Directory Existence in Unix Using System Calls?

Menyemak Kewujudan Direktori dalam Unix: Panduan Komprehensif Menggunakan Panggilan Sistem

Masalah:

Dalam Unix, bagaimana seseorang boleh tentukan kewujudan direktori menggunakan panggilan sistem tanpa membukanya atau mengendalikan ralat yang berkaitan?

Jawapan:

Sistem POSIX menyediakan dua fungsi penting untuk tujuan ini: stat( ) dan lstat(). Fungsi ini membolehkan anda memastikan sama ada nama laluan mencerminkan objek boleh diakses yang sah dan mendapatkan maklumat tentang jenisnya.

Perbezaan Utama Antara stat() dan lstat():

  • stat(): Mengikuti pautan simbolik dan memberikan maklumat tentang destinasi akhir.
  • lstat(): Menyediakan maklumat tentang pautan simbolik itu sendiri, tanpa mengira sebarang sasaran yang mungkin dituju.

Pelaksanaan Menggunakan stat():

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode)) {
    // True if pathname is a directory
}

Pengesahan Jenis Fail Tambahan:

Menggunakan makro S_IS* daripada < sys/stat.h>, anda boleh mengesahkan jenis fail lain di luar direktori:

  • S_ISREG: Fail biasa
  • S_ISCHR: Peranti aksara
  • S_ISBLK: Sekat peranti
  • S_ISFIFO: FIFO
  • S_ISNK: Pautan simbolik
  • S_ISSOCK: Soket

Atas ialah kandungan terperinci Bagaimana untuk Semak Kewujudan Direktori dalam Unix Menggunakan Panggilan Sistem?. 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