Linux中檔案系統相關知識 5

2021-10-03 19:12:15 字數 729 閱讀 2325

檔案儲存

inode

dentry

檔案系統

檔案操作

stat()/lstat()

返回值:

獲取檔案大小:buf.st_size

獲取檔案型別:buf.st_mode

獲取檔案許可權:buf.st.mode

符號穿透:stat()會,lstat()不會

link()

為了實現檔案共享,linux允許多個目錄項共享乙個 inode ,即共享盤塊(data),不同檔名,在人類眼中將它理解成兩個檔案,但在核心眼裡是同乙個檔案。link()函式,可以為已經存在的檔案建立目錄項(硬鏈結)。

unlink()

注意linux下刪除檔案的機制:不斷將 st_nlink - 1,直到減到0為止。無目錄項對應的檔案,將會被作業系統擇機釋放。(具體時間由系統內部排程演算法決定。)因此,我們刪除檔案,從某種意義上說,只是讓檔案具備了被釋放的條件。unlink()函式的特徵:清除檔案時,如果檔案的硬鏈結數到0了,沒有 dentry 對應,但該檔案仍不會馬上被釋放。要等到所有開啟該檔案的程序關閉該檔案,系統才會挑時間將該檔案釋放掉。

隱式**

目錄操作函式

重定向dup() 和 dup2()

int dup2(int oldfd, int newfd);

fcntl() 函式實現 dup()

LINUX檔案系統顯示中文

檔案系統顯示中文 配置核心支援編碼 native language support simplified chinese charset cp936,gb2312 nls utf 8 將檔案系統中的預設字元改為藍色部分 file systems dos fat nt filesystems msdo...

LINUX檔案系統顯示中文

檔案系統顯示中文 配置核心支援編碼 native language support simplified chinese charset cp936,gb2312 nls utf 8 將檔案系統中的預設字元改為藍色部分 file systems dos fat nt filesystems msdo...

LINUX檔案系統顯示中文

檔案系統顯示中文 配置核心支援編碼 native language support simplified chinese charset cp936,gb2312 nls utf 8 將檔案系統中的預設字元改為藍色部分 file systems dos fat nt filesystems msdo...