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

Bagaimana untuk Semak Kewujudan Direktori dalam Unix Menggunakan Panggilan Sistem?

Barbara Streisand
Lepaskan: 2024-11-07 13:09:03
asal
955 orang telah melayarinya

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
}
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan