引入
在上节讲的缓冲文件系统中,最关键的概念就是文件类型指针
,简称为:文件指针
。我们知道,要让程序操作一个文件,都需要将其加载到内存中,但是加载到内存之前,需要现经过缓冲区。所以,每个文件被使用时,都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息。
有关信息包括:文件名、文件状态及文件当前位置等信息
这些信息都是保存在一个结构体变量中的,该结构体类型由系统声明,取名为FILE
。
存放文件信息的 FILE
在不同的 C 编译环境中 FILE 的内容可能不完全相同,我们来举个例子,FLIE 的结构体可能是这样的,它包含在stdio.h
中:
1 | typedef struct { |
我们看到 FILE 结构体的命名使用的是 typedef 然后结构体没有名称,而是在声明的最后初始化了 FILE 结构体名称。
使用 FILE 结构体
既然有了结构体名称,我们就可以声明一个 FILE 类型的结构体变量了:
1 | FILE f1; |
上面结构体变量 f1中的信息,在系统打开文件时自动写入
,不用担心。但是我们在实际使用时,一般不通过变量名来使用,而是通过指向该结构体的指针来引用。
1 | FILE *f1; |
我们可以使这个指针指向一个文件的文件信息区,通过该文件信息区就能够访问该文件了。(文件信息区是在内存中的,也是一个结构体,稍后介绍)。
也就是说,通过文件指针变量能够找到与它相关联的文件。
小提示
我们也通常称这种指向文件信息区的指针变量为文件的指针变量
。
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。