歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux文件系統之文件描述符與讀寫指針

Linux文件系統之文件描述符與讀寫指針   linux文件描述符讀寫指針並行讀文件       上圖為 Linux VFS 系統的簡單圖示 每個進程在進程控制塊(PCB)中都保存著一份文件描述符表,文件描述符即是這個表的索引,每個表項都指向一個已打開文件,即上圖的 file 結構體。   file 結構體中維護著文件狀態標志以及讀寫指針,所以說即使不同的文件描述符都代表同一個文件,只要 file 結構體不同,便可以各自獨立的進行讀操作,因為它們使用的是不同的讀寫指針。   那麼有沒有不同的文件描述符使用同一個 file 結構體呢?答案是肯定的,使用 Linux 中的 dup 或 dup2 系統調用即可復制文件描述符,這樣便可以使兩個文件描述符指向同一個 file 結構體。這時,如果使用這兩個文件描述符進行的讀操作是不獨立的。   假設 fd1 和 fd2 兩個文件描述符都指向同一個 file 結構體,當使用 close 系統調用關閉 fd1後, fd2 仍可以使用。這是因為在 file 結構體中還維護者一個引用計數 count,當 close(fd1) 後,count 減 1,只有在 count 為 0 時,內核才會真正的釋放 file 結構體真正關閉文件。  
Copyright © Linux教程網 All Rights Reserved