用過計算機的人,對文件都不陌生,大多數人都接觸過,今天我們來講講關於C語言相關文件的基本知識。首先,我們先來了解了解什麼是文件。
文件有不同的類型,在程序的設計中,主要有兩種文件;
1.程序文件;包括源程序文件(後綴為.c),目標文件(後綴為.obj),可執行文件(後綴為.exe)等,這類文件的內容是程序代碼。
2.數據文件;文件的內容不是程序,而是供程序運行時讀寫數據,如在程序運行過程中輸出到磁碟(或其他外部設備)的數據,或{l不'l!序運行過程中供讀入的數據。
本章主要討論的是數據文件。
為了簡化用戶對輸人輸出設備的操作,使用戶不必去區分各種輸入輸出設備之間的區別,作業系統把各種設備都統一作為文件來處理。
輸人輸出是數據傳送的過程,數據如流水一樣從一處流向另一處,因此常將輸入輸出形象地稱為流(stream),即數據流。流表示了信息從源到目的端的流動。在輸入操作時,數據從文件流向計算機內存,在輸出操作時,數據從計算機流向文件(如印表機、磁碟文件)。文件是由作業系統進行統一管理的,無論是用Worcl打開或保存文件,還是工程序中的輸入輸出都是通過作業系統進行的。
文件要有一個唯一的文件標識,以便用戶識別和引川。文件標識包括3部分(1)文件路徑(2)文件名主幹(3)文件後綴。為方便起見,文件標識常被稱為文件名,、但應工照此時所稱的文件名,實際上包括以上3部分內容,而不僅是文件名主幹。文件名主幹的命名規則遵循標識符的命名規則。後綴用來表示文件的性質,如d·c(吖or,d生成的文件),txt(文本文,件).dati數據文件),c(C語言源程序文件),cpp(C++源程序文件),f·r(FORTRAN語言源程序文件),pas(Pascal語言源程序文件),obj(目標文件),exe(可執行文件),ppt(電子幻燈文件),bmp(圖形文件)等。
文件的分類
根據數據的組織形式,數據文件可分為ASCLL文件和二進位文件。數據在內存中是以二進位形式存儲的,如果不加轉換地輸到外存,就是二進位文件,可以認為它就是存儲在內存的數據的映像,所以也稱之為映像文件(image file)。如果要求在外存上以ASCII代碼形式存儲,則需要在存儲前進行轉換。SCII文件又稱文本文件(text file),每一個字節存放一個字符的ASCII代碼。
文件緩衝區
ANSI C標準採用"緩衝文件系統。處理數據文件,所謂緩衝文件系統是指系統自動地在內存區為程序中每一個正在使用的文件開闢一個文件緩衝區。從內存向磁碟輸出數據必須先送到內存中的緩衝區,裝滿緩衝區後才一起送到磁碟去。如果從磁碟向計算機讀人數據,則一次從磁碟文件將一批數據輸人到內存緩衝區(充滿緩衝區),然後再從緩衝區逐個地將數據送到程序數據區(給程序變量)。這樣做是為了節省存取時間,提高效率,緩衝區的大小由各個具體的C編譯系統確定。
文件類型指針
緩衝文件系統中,關鍵的概念是弱文件類型指針,簡稱。文件指針。每個被使用的文件都在內存中開闢二個相應的文件信息區,用來存放文件的有關信息(如文件的名字、文件狀態及取名為FILE.例如有二種c編譯環境提供的stdio.h頭文仵中有以下的文件類型聲明。
這就是基本的C語言文件的基本知識。