檔案 stat 和目錄 opendir

2021-10-02 20:31:28 字數 1423 閱讀 1004

linux stat函式講解

標頭檔案: #include

函式定義:int stat(const char *file_name, struct stat *buf);

函式說明: 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中

返回值: 執行成功則返回0,失敗返回-1,錯誤**存於errno

/*stat結構體定義:

struct stat ;

*/int

main()

return0;

}

注意stat返回值,獲取檔案資訊需要解析stat填充的結構體,

注意函式入參方式 input output, stat函式填充的檔案資訊結構體需要在呼叫此函式之前分配好記憶體,由stat函式負責填充,所以檔案資訊結構體既是乙個input型別入參又是乙個output型別入參

errno錯誤**

enoent

引數file_name指定的檔案不存在

enotdir

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

eloop

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

efault

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

eaccess

訪問檔案時被拒絕

enomem

核心記憶體不足

enametoolong

引數file_name的路徑名稱太長

dir、dirent、stat等結構體詳解

opendir、readdir、closedir函式詳解

例子:

#include

#include

intopendir()

//struct dirent

//;struct dirent *dirtemp =

null

;//struct dirent *readdir(dir *dir);

//readdir 讀路徑,迴圈讀取,直到readdir返回null,表示路徑檔案讀取結束,在結構體中有檔名

while

(null

!=(dirtemp=

readdir

(dir)))

//closedir(dir *dir);

//關閉dir流

closedir

(dir)

;return0;

}

LINUX 檔案和目錄 stat結構

在使用這個結構體和方法時,需要引入 struct stat這個結構體是用來描述乙個linux系統檔案系統中的檔案屬性的結構。可以有兩種方法來獲取乙個檔案的屬性 1 通過路徑 int stat const char path,struct stat struct stat int lstat cons...

stat 獲得檔案資訊

include include include include include include int main output some of the statistics printf file size ld n buf.st size printf drive c n buf.st dev a...

stat 獲得檔案資訊

include include include include include include int main output some of the statistics printf file size ld n buf.st size printf drive c n buf.st dev a...