1、什么是文件
在程序设计中,我们一般谈的文件有两种:程序文件,数据文件(从文件功能的角度来分类的。)
包括源程序文件(后缀为.c),目标问价(windows环境后缀为.obj),可执行程序(Windows环境后缀为.exe)。
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
后面我们讨论的是数据文件。
在缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。
每次打开文件/使用文件,都会在内存中开辟一个相应的文件信息区(是一个结构体),用来存放文件的相关信息(比如文件的名称,字体状态及位置等)。这个结构体是由系统声明的,取名为FILE。存放完信息后,就返回这个结构体的起始地址,用指针来接收。这个指针就叫“文件指针”。
例如:vs2013编译环境提供的stdio.h头文件中有以下的文件类型申明:
struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
};
typedef struct _iobuf FILE;
不同的编译器的FILE类型包含的内容不完全相同,但是大同小异。
注意:每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并自动填充其中的信息。使用者不用关心细节。
所以我们一般使用FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。
FILE* pf; // 文件指针变量
pf是一个指向FILE类型数据的指针变量,可以使FILE指向某个文件的文件信息区域。通过该文件信息区中的信息就能够访问该文件。也就是说:通过文件指针变量能够找到与它关联的文件。
在文件读写之前都应该打开文件,试用结束之后应该关闭文件。
在编写程序的时候,打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。
规定使用fopen来打开文件,并返回这个文件(结构体)的地址。
//打开文件
FILE* fopen(const char* filename, const char* mode);
filename:代表文件名。mode:代表打开方式。(r,w,a,r+,w+,a+.....)
注意: fopen打开文件可能会打开失败。如果打开成功就返回该文件(结构体)的地址;打开失败就返回空指针。
使用fclose来关闭文件。
int fclose(FILE* stream);
注意:关闭文件后,应该把文件指针置空,防止为野指针。
FILE* pf = fopen("12.25test.txt", "w");
if (pf =&#
更多【c语言-文件操作C】相关视频教程:www.yxfzedu.com