C语言文件的打开和关闭

C语言中,打开文件就是将其从外部存储器调入内存,并定义一个文件指针指向该文件,进而实现用指针对文件的读写操作(见图 1a) )。

文件的打开与关闭
图 1:文件的打开与关闭

使用 fopen( ) 函数打开文件的格式如下:
FILE *文件指针名;      //定义文件指针
文件指针 = fopen("文件名","文件打开方式");     //打开文件

例如,下面代码表示以“只读”方式打开文本文件 f01.txt:
FILE *fp;
fp = fopen("f01.txt","r");

fopen( ) 返回一个指向文件对象的指针,当打开操作失败时,返回空指针 NULL。

表 1 所示为 C语言常用的文件打开方式:
表 1:C语言常用的文件打开方式
打开方式 说明
r 以只读模式打开文件,如果文件不存在或没有读取权限,则文件打开失败
w 以只写模式建立文件,如果文件已存在,则删除原有内容
a 以追加模式打开或建立文件,在文件末尾追加数据,不删除原有内容
r+ 以更新(读写)模式打开文件,可以输入也可以输出,文件必须已经存在
w+ 以更新(读写)模式建立文件,可以输入也可以输出,若文件已存在则删除原有内容
a+ 以追加模式打开或建立文件,可以输入也可以输出,不删除原文件内容,在文件末尾写入

在结束文件操作后,必须使用 fclose( ) 函数关闭文件。计算机在向文件写入数据时,是先将数据写在缓存区,待缓存区被充满,才正式将数据写入文件。如果缓存区未被充满却结束程序,就会造成数据丢失。关闭文件的操作是,先将数据写入文件,然后释放文件指针,此后不能再通过文件指针对该文件进行操作(见图 1b) )。

关闭文件的一般格式如下:
fcolse(文件指针名);      //关闭文件

例如,下面代码表示关闭“文件指针”fp 所指向的文件:
fclose(fp);