UNIX檔案共享

2021-09-29 17:19:51 字數 879 閱讀 3860

核心使用3種資料結構表示開啟檔案,這三種結構的關係決定了共享檔案程序間的可能產生的影響

結構1.檔案描述符表,檔案描述符表存在於程序表的乙個記錄項中,檔案描述符表中的每一項包含兩個重要資料:

a. 檔案描述符標誌

b.指向乙個檔案表項的指標

結構2. 檔案表項,檔案表項存在於核心為所有開啟檔案維持的一張檔案表中(注意該檔案表不屬於任何乙個程序,它被所有程序公用)檔案表項中包含的內容有:

a。檔案狀態標誌(讀,寫,新增,同步和非阻塞等)

b。當前檔案偏移量

c。指向該檔案v節點表項的指標(v節點表項中存有該開啟檔案的更詳細資訊)

結構3. v節點結構,每個開啟檔案都有乙個v節點結構(乙個檔案只有乙個v節點,與開啟她的程序個數無關)。v節點結構包含了檔案型別和對此檔案進行各種操作的函式指標。對於大多數檔案,v節點還包含了乙個i節點(索引節點)。以上這些資訊都是在開啟檔案時從磁碟中讀入記憶體的。i節點包含了檔案的所有者,檔案長度,指向檔案實際資料塊在磁碟所在位置的指標等必要資訊

不同程序對檔案的操作的不同體現在檔案狀態標誌以及當前檔案偏移量上,這些屬性都在檔案表項結構中。所以對於開啟同一檔案的不同程序,它們有各自的檔案表項,但各自的檔案表項的v節點指標卻指向同一節點(前面說過,乙個檔案有且僅有乙個v節點)。

由於不同程序最終都操作同一v節點,在大家都以讀形式操作時沒有任何問題,但關於不同程序間的寫操作就可能會出現一些意想不到的結果,因此就需要進行程序間通訊來同步兩個程序的操作。由此引出了程序間通訊的問題

《UNIX環境高階程式設計》筆記 檔案共享

分類 unix環境高階程式設計 筆記 2013 09 13 15 51 500人閱讀收藏 舉報目錄 檔案共享 dup和dup2函式 核心使用3種資料結構來表示開啟的檔案,他們的關係如下 每個程序都有一張程序表項,記錄程序開啟的檔案 fd標誌 close on exec,若乙個檔案描述符在close ...

linux掛接UNIX系統NFS檔案共享

linux系統nfs服務端配置方法如下 1 修改 etc exports,增加共享目錄 export home sunky 10.140.133.23 rw export home sunky1 rw export home sunky2 linux client rw 注 export home ...

Unix 檔案鎖 共享鎖 排他鎖

fcntl函式 flock結構對檔案鎖的操作 例子 協議鎖和強制鎖 檔案鎖的核心結構 unix提供了檔案鎖機制來防止多程序對同一檔案的併發操作導致的髒讀和資料混亂,同時也為多程序提供了同步機制。鎖型別共享鎖 讀鎖 共享鎖也稱為讀鎖。如果乙個程序為某個檔案的某個區域加了一把共享鎖,那麼其他程序對該檔案...