C语言文件位置标记

 

随机访问不是按数据在文件中的物理位置次序进行读写,而是可以对任何位置上的数据进行访问。

 

为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记(简称文件位置标记或文件标记),用来指示“接下来要读写的下一个字符的位置”。

 

一般情况下,在对字符文件进行顺序读写时,文件位置标记指向文件开头,这时如果对文件进行读的操作,就读第1个字符,然后文件位置标记向后移一个位置,在下一次执行读的操作时,就将位置标记所指向的第2个字符读入。

 

如果是顺序写文件,则每写完一个数据后,文件位置标记顺序向后移一个位置,然后在下一次执行写操作时把数据写入指针所指的位置。

 

对流式文件既可以进行顺序读写,也可以进行随机读写。关键在于控制文件的位置标记。

 

C语言文件定位

 

可以强制使文件位置标记指向人们指定的位置。

 

  • 用rewind函数使文件位置标记指向文件开头。
  • rewind函数的作用是使文件位置标记重新返回文件的开头,此函数没有返回值。
  • 用fseek函数改变文件位置标记

 

调用形式:fseek(文件类型指针,位移量,起始点)

 

  • 起始点用0、1或2代替,0代表文件开始位置,1为当前位置,2为文件末尾位置。位移量指以起始点为基点,向前移动的字节数。位移量应是long型数据。
  • 用ftell函数测定文件位置标记的当前位置
  • ftell函数的作用是得到流式文件中文件位置标记的当前位置。