讀古今文學網 > C語言解惑 > 第22章 使用文件常見錯誤分析 >

第22章 使用文件常見錯誤分析

操作系統是以文件為單位對數據進行管理的。也就是說,如果想讀取存儲在外部介質上的數據,必須先按文件名找到所指定的文件,然後再從該文件中讀取數據。要向外部介質上存儲數據也必須先建立一個供識別的文件名,才能向它輸出數據。

從操作系統的角度講,每一個與主機相連的輸入輸出設備都被看做是一個文件。例如,終端鍵盤是輸入文件,顯示屏和打印機是輸出文件。不過,C語言I/O系統為C語言編程提供了一個統一的接口,與被訪問的具體設備無關。也就是說,C語言I/O系統在編程者和被使用設備之間提供了一層抽像的東西。這個抽像的東西叫做「流」,具體的設備就叫做「文件」。應該充分注意理解流和文件之間的內在聯繫。

在使用文件時,最容易犯如下幾種錯誤。

(1)打開文件方式不正確,如用只讀方式打開準備寫的文件。

(2)如果要對已有文件操作,則應先判別這個文件是否存在。

(3)不用的文件要注意及時關閉。

(4)假設文件名為fp1,注意文件關閉時的正確判別條件是if(fclose(fp1)==EOF),而常犯的誤判是使用if(fclose(fp1)==NULL)。

(5)錯誤使用sizeof(struct_type)求結構長度,應該是sizeof(struct struct_type)。

(6)讀取數據時,fread語句中忘記在數據型成員前使用地址符號「&」。

可以簡單歸納為兩類:文件的打開與關閉和文件的使用。