檔案描述符與檔案指標的區別

2021-08-25 11:34:21 字數 1027 閱讀 3397

檔案指標

c語言中使用檔案指標做為i/o的控制代碼。檔案指標指向程序使用者區中的乙個被稱為file結構的資料結構。file結構包括緩衝區和檔案描述符。而檔案描述符是檔案描述符表的乙個索引,也就是說c語言的檔案指標是linux系統中對檔案描述符的一種封裝。  

file結構體

優點:一、方便程式設計師使用;二、可以提高程式的移植性。

檔案描述符

在linux系統中開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb(process control block)中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向已開啟檔案的指標,已開啟的檔案在核心中用file結構體表示,檔案描述符表中的指標指向file結構體。

檔案描述符的分配規則:從當前未被分配的最小整數處分匹配。

下面看檔案file結構體

優點

相容posix標準,許多linux和unix系統呼叫都依賴於它。

缺點

檔案描述符的概念存在兩大缺點 :

一、在非unix / linux作業系統上(如windows nt),無法基於這一概念進行程式設計。

二、由於檔案描述符在形式上不過是個整數,當**量增大時,會使程式設計者難以分清哪些整數意味著資料,那些意味著檔案描述符。因此,完成的**可讀性也就會變得很差。

檔案描述符與檔案指標

檔案描述符這一概念往往只適用於unix linux這樣的作業系統。什麼是檔案描述符?程序利用檔案描述符來訪問檔案。檔案描述符在形式上是乙個非負整數。實際上,它是乙個索引值,指向每乙個程序所維護的該程序開啟檔案的記錄表。當程式開啟乙個現有檔案或者建立乙個新檔案時,程序就返回乙個檔案描述符。每個linu...

檔案描述符和檔案指標區別

int fileno file stream 返回stream對應的檔案描述符。file fdopen int filedes,const char mode 從檔案描述符fd 到檔案流 file 的函式 檔案描述符,在linux系統中,裝置也是以檔案的形式存在,要對該裝置進行操作就必須先開啟這個檔...

檔案描述符和檔案指標的區別

檔案描述符 在linux系統中開啟檔案就會獲得檔案描述符,它是個很小的正整數。每個程序在pcb process control block 中儲存著乙份檔案描述符表,檔案描述符就是這個表的索引,每個表項都有乙個指向已開啟檔案的指標。檔案指標 c語言中使用檔案指標做為i o的控制代碼。檔案指標指向程序...