首頁 > 後端開發 > C++ > 主體

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

Barbara Streisand
發布: 2024-11-07 13:09:03
原創
842 人瀏覽過

How to Check Directory Existence in Unix Using System Calls?

檢查Unix 中的目錄是否存在:使用系統呼叫的綜合指南

問題:

在Unix 中,如何使用系統呼叫確定目錄是否存在,而不開啟它或處理相關錯誤?

答案:

POSIX 系統為此提供了兩個基本函數: stat( ) 和 lstat()。這些函數可讓您確定路徑名是否反映了有效的可存取物件並檢索有關其類型的資訊。

stat() 和 lstat() 之間的主要區別:

  • stat():追蹤符號連結並提供有關最終目的地的資訊。
  • lstat():提供有關符號連結本身的信息,無論它可能指向任何目標。

使用stat() 實現:

#include <sys/stat.h>

struct stat sb;

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

附加文件類型驗證:

使用

  • 使用
  • 中的S_IS* 巨集sys/stat.h>,您可以驗證目錄以外的其他檔案類型:
  • S_ISREG :常規檔案
  • S_ISCHR:字元裝置
  • S_ISBLK:區塊裝置
S_ISFIFO:先進先出S_ISLNK:符號連結 S_ISSOCK:套接字

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

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