学科分类
目录
C语言

文件位置指针

将一个文件与文件指针进行关联之后,即打开了文件,系统会为每个文件设置一个位置指针,用来标识当前文件的读写位置,这个指针称为文件位置指针。文件位置指针是真正指向文件的指针。

一般在文件打开时,文件位置指针指向文件开头,如图1所示。

图1 文件位置指针指向文件开头

图1所示的文件中存储的数据为“Hello,world”,文件位置指针指向文件开头,此时,对文件进行读取操作,读取的是文件的第一个字符‘H’。读取完成后,文件位置指针会自动向后移动一个位置,再次执行读取操作,将读取文件中的第二个字符‘e’,以此类推,一直读取到文件结束,此时位置指针指向最后一个数据之后,如图2所示。

图2 文件读取完毕

由图2可知,当文件读取完毕时,文件位置指针指向最后一个数据之后,这个位置称为文件末尾,用EOF标识,EOF是英文“end of file”的缩写,被称为文件结束符。EOF是一个宏定义,其值为-1,定义在stdio.h头文件中,通常表示不能再从流中获取数据。

向文件中写入数据与从文件中读取数据是相同的,每写完一个数据后,文件的位置指针自动按顺序向后移一个位置,直到数据写入完毕,此时文件位置指针指向最后一个数据之后,即文件末尾。

有时,在向文件中写入数据时,希望在文件末尾追加数据,而不是覆盖原有数据,可以将文件位置指针移至文件末尾再进行写入,关于文件位置指针的移动将在11.2.4节进行讲解,这里读者只需要了解文件位置指针可以被移动即可。

点击此处
隐藏目录