函式stat,lstat,fstat的使用

2021-06-06 14:23:30 字數 2541 閱讀 7471

1、函式都是獲取檔案(普通檔案,目錄,管道,socket,字元,塊()的屬性。

函式原型#include int stat(const char *restrict pathname, struct stat *restrict buf);

提供檔案名字,獲取檔案對應屬性。

int fstat(int filedes, struct stat *buf);

通過檔案描述符獲取檔案對應的屬性。

int lstat(const char *restrict pathname, struct stat *restrict buf);

連線檔案描述命,獲取檔案屬性。

一眼就能看出來fstat的第乙個引數是和另外兩個不一樣的,對!fstat區別於另外兩個系統呼叫的地方在於,fstat系統呼叫接受的是 乙個「檔案描述符」,而另外兩個則直接接受「檔案全路徑」。檔案描述符是需要我們用open系統呼叫後才能得到的,而檔案全路經直接寫就可以了。

stat 和lstat的區別:當檔案是乙個符號鏈結時,lstat返回的是該符號鏈結本身的資訊;而stat返回的是該鏈結指向的檔案的資訊。(似乎有些暈吧,這樣記,lstat比stat多了乙個l,因此它是有本事處理符號鏈結檔案的,因此當遇到符號鏈結檔案時,lstat當然不會放過。而 stat系統呼叫沒有這個本事,它只能對符號鏈結檔案睜乙隻眼閉乙隻眼,直接去處理鏈結所指檔案嘍)

2 檔案對應的屬性

struct stat ;

可以通過上面提供的函式,返回乙個結構體,儲存著檔案的資訊.

3獲取檔案屬性的幾個封裝函式

///

// 功能說明 : 判斷是否link檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool islink ( const char * szdirname )

///// 功能說明 : 判斷是否block檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool isblk ( const char * szdirname )

///// 功能說明 : 判斷是否fifo檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool isfifo ( const char * szdirname )

///// 功能說明 : 判斷是否目錄檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool isdir ( const char * szdirname )

///// 功能說明 : 判斷是否裝置檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool isdevice ( const char * szdirname )

///// 功能說明 : 判斷是否普通檔案

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool isfile ( const char * szdirname )

///// 功能說明 : 判斷是否可讀

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool canaccess ( const char *szfilename )

///// 功能說明 : 判斷是否可修改

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_bool

// 使用說明 :

///ycpp_bool canmodify ( const char *szfilename )

///// 功能說明 : 獲取檔案上次修改時間

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_ret

// 使用說明 :

///ycpp_ret filelastmtime ( const char *szfilename )

///// 功能說明 : 獲取檔案大小,以位元組為單位

// 輸入引數 :

// 輸出引數 : void

// 返回值   : ycpp_ret

// 使用說明 :

///ycpp_ret filesize ( const char *szfilename )

函式基礎 匿名函式,函式,箭頭函式,立即執行函式

doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title document title head body body ...

函式 常見函式

def fib n if n 1 return 1if n 2 return 1return fib n 1 fib n 2 def hannuo n,a,b,c n 表示有n個盤子 a 代表第乙個塔,開始的塔 b 代表第二個塔,過渡塔 c 代表第三個塔,目標塔 d.在 中n 2,這個分支可以不要,...

Lua 函式 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定的任務,也可以只做一些計算並返回結果。lua具有一項非常於總不同的特徵,允許函式返回多個結果 s,e string.find hello lua users lua print s,e 7 9 以lua編寫的函式同樣可以返...