每天一個(gè)linux函數(shù)(文件類(lèi)型 stat函數(shù))
window通常以后綴區(qū)分文件.比如: .c .h .txt? .pdf
linux下不以后綴區(qū)分文件.但是為了閱讀方便,還是會(huì)加上后綴的.
linux中一共分為7種文件類(lèi)型:
普通文件:
目錄文件.
設(shè)備文件.
符號(hào)鏈接文件(類(lèi)似與window的快捷方式).
慣導(dǎo)文件.
套接字文件.
stat函數(shù)是linux中的系統(tǒng)調(diào)用.用于獲取文件相關(guān)的信息.
函數(shù)原型,可以通過(guò)?man 2?stat命令查看.
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *pathname, struct stat *buf);
其中pathname: 用于指定一個(gè)需要查看屬性的文件路徑.
其中buf:?struct?stat類(lèi)型的指針,用于指向一個(gè)struct?stat結(jié)構(gòu)體變量.
調(diào)用stat函數(shù)的時(shí)候,需要傳入,一個(gè)struct?stat變量的指針,
獲取到的文件屬性信息就記錄在struct?stat結(jié)構(gòu)體中.
其中返回值:?成功返回0;失敗返回-1,并設(shè)置error.

這個(gè)struct?stat結(jié)構(gòu)體就類(lèi)似與window下一個(gè)文件的屬性.
在window中右擊一個(gè)文件,查看屬性,就會(huì)有個(gè)窗口跳出來(lái),上面寫(xiě)著文件的類(lèi)型,名字,大小...
如下圖:(linux中是以結(jié)構(gòu)體顯示,不像window以圖形顯示...)

在linux中這個(gè)結(jié)構(gòu)體中都有什么內(nèi)容呢?
其實(shí)和window很相似:


形參分析:
路徑,當(dāng)然是要用字符串表示.
在C語(yǔ)言中,字符串需要用指針指向它.
字符串有不同的長(zhǎng)度,估計(jì)是在stat函數(shù)里面又判斷,判斷有沒(méi)有執(zhí)行了字符串的結(jié)尾.
所以不用傳入長(zhǎng)度.
(找一個(gè)機(jī)會(huì),自己寫(xiě)一個(gè)傳入指針的函數(shù).)
第二個(gè)參數(shù)是一個(gè)結(jié)構(gòu)體指針,
為什么是指針,是為了向外返回內(nèi)容.
不止return可以返回內(nèi)容.形參指針,也可以返回內(nèi)容.

1,創(chuàng)建文件夾和文件

2,編寫(xiě)函數(shù)

3,因?yàn)橐x取文件屬性,
所以我們創(chuàng)建一個(gè)臨時(shí)文件,讀取它的屬性.
test_file.txt

4,然后編譯一下程序,make一下

5,運(yùn)行程序
