42 C语言文件操作_打开文件




01 什么是文件


文件有不同的类型,在程序设计中,主要用到两种文件:

(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。

(2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。

为了简化用户对输入输出设备的操作,使用户不必去区分各种输入输出设备之间的区别,操作系统把各种设备都统一作为文件来处理。

文件是程序设计中一个重要的概念。所谓“文件”一般指存储在外部介质上数据的集合。

输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流,即数据流。


02 文件名


一个文件要有一个唯一的文件标识,以便用户识别和引用。文件标识包括3部分:

(1)文件路径;
(2)文件名主干;
(3)文件后缀。


03 文件的分类


根据数据的组织形式,数据文件可分为ASCII文件和二进制文件。

数据在内存中是以二进制形式存储的,如果不加转换地输出到外存,就是二进制文件,可以认为它就是存储在内存的数据的映象,所以也称之为映像文件。

如果要求在外存上以ASCII代码形式存储,则需要在存储前进行转换。

ASCII文件又称文本文件,每一个字节放一个字符的ASCII代码。


04 文件缓冲区


ANSI C标准采用“缓冲文件系统”处理数据文件,所谓缓冲文件系统是指系统自动地在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。

05 文件类型指针
缓冲文件系统中,关键的概念是“文件类型 指针”,简称“文件指针”。每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息。这些信息是保存在一个结构体变量中的。


   05 函数介绍


1.fopen():文件打开操作

头文件:stdio.h

函数定义:FILE *fopen(char *pname, char *mode)

函数说明:pname是文件名,mode是打开文件的方式

mode:"r" 打开一个已经存在的文件文本,文件不存在则出错

42 C语言文件操作_后缀_02


以“r+”的方式打开一个文件,会清空文件的原始内容,重新写入数据


返回值:正常返回:FILE *一个指向文件在内存中的文件信息的开头

异常返回:NULL,表示打开操作不成功


打开文件的作用是:

(1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;

(2)开辟一个缓冲区;

(3)调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件;


2. fclose():文件关闭

函数定义:int fclose(FILE *fp);

函数说明:fp是一个以打开的文件的文件指针

返回值:

正常返回:0

异常返回:EOF,表示文件在关闭时发生错误