c-fseek

C语言中fseek函数掌握了文件流的进度和位置,可以实现文件中读写数据的跳跃。

int ret = fseek(文件指针,偏移值,相对位置)返回值为0||-1,当0时seek成功,-1时失败

每个被fopen的文件对象,其数据结构里都有一个位置指示器指向当前文件的读写位置,fseek就是让这个指示器从当前位置发生偏移从而实现数据的跳跃,正整数往后,负整数往前,如下:

const char* filename = “e/aaa.txt”;

File* fp = fopen(filename,”rb”);//此时指示器的值为0

unsigned char buf[128];

int ret = fseek(fp,32,SEEK_SET);//此时返回值为0,seek成功

int n = fread(buf,1,4,fp);//此时buf的值为32开始的4个字节

有了fseek以后,文件的读取可以动态起来了,跳跃式的读取可以略过中间不需要的数据直接读取到目标,但是方式还是略微死板,而且seek不能多用,因为seek时需要移动物理“磁头”,在硬盘、U盘等外部存储器上频繁的读写,速度比较慢,还会影响设备的寿命。期待其它的读写器。

发表评论

电子邮件地址不会被公开。 必填项已用*标注