首页 » C语言解惑 » C语言解惑全文在线阅读

《C语言解惑》第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语句中忘记在数据型成员前使用地址符号“&”。

可以简单归纳为两类:文件的打开与关闭和文件的使用。