1、前言
工作中涉及到檔案系統,有時候需要判斷檔案和目錄是否存在。我結合apue第四章檔案和目錄,總結一下如何正確判斷檔案和目錄是否存在,方便以後查詢。
2、stat系列函式
stat函式用來返回與檔案有關的結構資訊。stat系列函式有三種情況,分別對應檔名稱、檔案描述符和符號鏈結檔案。stat結構描述了檔案的屬性,主要包括檔案的型別、檔案大小等等。詳細stat結構如下所示:
1 struct stat ;我們可以通過stat獲取檔案的型別和檔案大小等資訊。檔案型別有:普通檔案、目錄檔案、塊特殊檔案、字元特殊檔案、fifo、套接字和符號鏈結。要想通過stat系列函式來判斷檔案或者目錄是否存在,當執行stat函式,如果檔案存在時,還需進一步判斷該檔案是普通檔案還是目錄檔案。
stat系列函式錯誤返回-1,錯誤碼存在errno中,errno取值如下:
1、enoent 引數file_name 指定的檔案不存在3、access函式2、enotdir 路徑中的目錄存在但卻非真正的目錄
3、eloop 欲開啟的檔案有過多符號連線問題, 上限為16 符號連線
4、efault 引數buf 為無效指標, 指向無法存在的記憶體空間
5、eaccess 訪問檔案時被拒絕
6、enomem 核心記憶體不足
7、enametoolong 引數file_name 的路徑名稱太長
access函式按照實際使用者id和實際組進行訪問許可權測試。函式原型為:
#include int access(const char *pathname, int mode);mode取值:
f_ok 測試檔案是否存在
r_ok 測試讀許可權
w_ok 測試寫許可權
x_ok 測試執行許可權
正確判斷乙個檔案是否存在是用access函式,實現如下所示:
4、oepndir函式
opendir函式用來開啟檔案目錄,成功返回指標,出錯返回null。實現如下:
冷靜思考,勇敢面對,把握未來!
linux下判斷檔案和目錄是否存在 總結
linux下判斷檔案和目錄是否存在 總結 1 前言 工作中涉及到檔案系統,有時候需要判斷檔案和目錄是否存在。我結合apue第四章檔案和目錄,總結一下如何正確判斷檔案和目錄是否存在,方便以後查詢。2 stat系列函式 stat函式用來返回與檔案有關的結構資訊。stat系列函式有三種情況,分別對應檔名稱...
shell判斷目錄 檔案是否存在
編寫指令碼 vim a.sh bin bash a ls grep zabbix b usr local src zabbix if d a then touch b echo b已建立 else echo a fi具體引數如下 根據自己需要選擇相對應的引數 e 判斷 a是否存在 d 判斷 a是否存...
Python 判斷檔案 目錄是否存在
python 操作檔案時,我們一般要先判斷指定的檔案或目錄是否存在,不然容易產生異常。例如我們可以使用 os 模組的 os.path.exists 方法來檢測檔案是否存在 import os.path os.path.isfile fname 如果你要確定他是檔案還是目錄,從 python 3.4 ...