1、檔案和流的關係
c將每個檔案簡單地作為順序位元組流(如下圖)。每個檔案用檔案結束符結束,或者在特定位元組數的地方結束,這個特定的位元組數可以儲存在系統維護的管理資料結構中。當開啟檔案時,就建立了和檔案的關係。
在開始執行程式的時候,將自動開啟3個檔案和相關的流:標準輸入流、標準輸出流和標準錯誤。流提供了檔案和程式的通訊通道。例如,標準輸入流使得程式可以從鍵盤讀取資料,而標準輸出流使得程式可以在螢幕上輸出資料。開啟乙個檔案將返回指向file結構(在stdio.h中定義)的指標,它包含用於處理檔案的資訊,也就是說,這個結構包含檔案描述符。檔案描述符是作業系統陣列(開啟檔案列表的索引)。每個陣列元素包含乙個檔案控制塊(fcb, file control block),作業系統用它來管理特定的檔案。
file結構體
c語言的stdio.h標頭檔案中,定義了用於檔案操作的結構體file。這樣,我們通過fopen返回乙個檔案指標(指向file結構體的指標)來進行檔案操作。可以在stdio.h(位於visual studio安裝目錄下的include資料夾下)標頭檔案中檢視file結構體的定義,如下:
tc2.0中:
typedef struct file; /* this is the file object */vc6.0中:
#ifndef _file_defined
struct _iobuf ;
typedef struct _iobuf file;
#define _file_defined
#endif
file結構包含作業系統用來訪問檔案的低階檔案描述符、檔案快取區的大小和位置、unget使用的字元快取區,表示檔案是否為臨時檔案的標誌以及其他一些標誌變數。此外,file指標還儲存了檔案指標,可以對檔案中的當前位置進行跟蹤記錄。
系統為每個開啟的檔案都在記憶體中開闢乙個區域,用於存放檔案的有關資訊(例如檔名、檔案位置等)。這些資訊儲存在結構型別變數中,該結構型別由系統定義,取名為file。(注意「file必須大寫」)
參考:
C語言中結構體的認識
1,結構體是什麼 結構體是組合資料型別的一種,其成員型別可以是相互關聯的基本資料型別也可以是結構體 型別 2,使用場合 當要處理大量有關聯的不同資料型別的時候,例如乙個學生的資訊,有學號 int 姓名 char 年齡 int 等資訊,就可以使用結構體,大大提高效率 3,怎麼用 1 宣告或者說定義結構...
C語言的共用體,列舉型別簡單認識
關於一些c語言的共用體,列舉型別簡單分享給大家 1.共用體是將不同型別的變數或者陣列儲存在乙個共同的記憶體單元內 2.不能對共用體的每個成員同時賦值,因為其中的成員占用同乙個記憶體單元,只能存放唯一的乙個值。3.共用體之間可以想互賦值共用體a,b b a 4.共用體型別也可以成為結構體型別的成員,也...
簡單解析C語言結構體
1.結構體的定義 結構體是由一系列具有相同型別或不同型別的資料構成的資料集合,叫做結構。在c語言中,結構體指的是一種資料結構。宣告乙個結構體型別的一般形式如下 struct 結構體名 具體宣告如下所示 struct struct 注意最後乙個有分號 注意 結構體型別的名字是又乙個關鍵字struct和...