linux下判斷檔案和目錄是否存在 總結

2021-08-21 20:29:31 字數 1199 閱讀 6189

linux下判斷檔案和目錄是否存在[總結]

1、前言

工作中涉及到檔案系統,有時候需要判斷檔案和目錄是否存在。我結合apue第四章檔案和目錄,總結一下如何正確判斷檔案和目錄是否存在,方便以後查詢。

2、stat系列函式

stat函式用來返回與檔案有關的結構資訊。stat系列函式有三種情況,分別對應檔名稱、檔案描述符和符號鏈結檔案。stat結構描述了檔案的屬性,主要包括檔案的型別、檔案大小等等。詳細stat結構如下所示:

1

struct

stat ;

我們可以通過stat獲取檔案的型別和檔案大小等資訊。檔案型別有:普通檔案、目錄檔案、塊特殊檔案、字元特殊檔案、fifo、套接字和符號鏈結。要想通過stat系列函式來判斷檔案或者目錄是否存在,當執行stat函式,如果檔案存在時,還需進一步判斷該檔案是普通檔案還是目錄檔案。

stat系列函式錯誤返回-1,錯誤碼存在errno中,errno取值如下:

1、enoent 引數file_name 指定的檔案不存在

2、enotdir 路徑中的目錄存在但卻非真正的目錄

3、eloop 欲開啟的檔案有過多符號連線問題, 上限為16 符號連線

4、efault 引數buf 為無效指標, 指向無法存在的記憶體空間

5、eaccess 訪問檔案時被拒絕

6、enomem 核心記憶體不足

7、enametoolong 引數file_name 的路徑名稱太長

3、access函式

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系列函式有三種情況,分別對應檔名稱 檔案描述符和符號鏈結檔案。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 ...