首頁 > 後端開發 > C++ > 如何使用系統呼叫檢查 Unix 中的目錄是否存在?

如何使用系統呼叫檢查 Unix 中的目錄是否存在?

Barbara Streisand
發布: 2024-11-08 00:30:03
原創
351 人瀏覽過

How to Check if a Directory Exists in Unix Using System Calls?

使用系統呼叫驗證Unix 中的目錄是否存在

在Unix 系統中,查詢目錄的存在對於各種檔案管理任務至關重要。與 opendir() 如果目錄不存在則傳回錯誤不同,其他方法提供更精確的目錄驗證。

stat() 和lstat() 用於目錄檢查

POSIX 系統提供兩個函數stat() 和lstat() 來決定路徑名指定的物件是否存在及其類型。 stat() 追蹤符號鏈接,而 lstat() 檢查符號鏈結本身。

以下程式碼片段示範如何使用stat() 檢查目錄是否存在:

#include <sys/stat.h>

struct stat sb;

if (stat(pathname, &sb) == 0 && S_ISDIR(sb.st_mode))
{
    // ...it is a directory...
}
登入後複製

S_IS* 用於檔案類型辨識的巨集

如果stat() 成功,則可以使用S_ISDIR() 來確定檔案是否為目錄。其他S_IS* 巨集允許識別各種檔案類型:

  • S_ISDIR - 目錄
  • S_ISREG - 常規檔案
  • S_ISCHR - 字元裝置
  • S_ISFIFO - FIFO
  • S_ISLNK - 符號連結
  • S_ISSOCK - 套接字

以上是如何使用系統呼叫檢查 Unix 中的目錄是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板