您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言fsetpos()函数:设置当前文件的读写指针

时间:12-29来源:作者:点击数:

头文件:#include<stdio.h>

fsetpos()函数用来设置当前文件读写指针的位置,其原型为:
    int fsetpos(FILE *fp, fpos_t  *pos);

【参数】fp为当前文件流指针,pos为fpos_t类型的文件读或写指针的位置。

fsetpos()与fgetpos()的作用相反:fsetpos()用来设置当前文件的读写指针,fgetpos()用来获取当前文件的读写指针。fpos_t类型一般由fgetpos()获取。

更多关于fpos_t的信息请参考fgetpos()函数。

【返回值】成功则返回0,否则返回非0,并设置errno。

【实例】在window下使用fsetpos()设置当前文件指针的位置。

#include <stdio.h>
void main( void )
{
    FILE   *fp;
    fpos_t pos;
    char   buffer[50];
    if( (fp = fopen( "test.txt", "rb" )) == NULL )
        printf( "Trouble opening file" );
    else
    {
        pos = 10;
    
        if( fsetpos( fp, &pos ) != 0 )
            perror( "fsetpos error" );
        else
        {
            fread( buffer, sizeof( char ), 16, fp );
            printf( "16 bytes at byte %ld: %.16s", pos, buffer );
        }
    }
    fclose( fp );
}

首先,程序以只读方式打开名为test.txt的文件。在这里,test.txt文件中已存入字符串This is a test for testing the function of fsetpos.

将pos设置为10。应用fsetpos函数将文件指针fp按照pos指定的位置在文件中定位。这样文件指针fp指向字符串中test的字母t。

再从新定位的文件指针开始读取16个字符到buffer缓冲区,也就是说读取字符串"test for testing"到缓冲区buffer。

最后显示结果:16 bytes at byte 10: test for testing 。

说明:通常情况下,fsetpos()和fgetpos()可以一起使用,fgetpos()获取并保存当前文件的读写指针,然后对文件进行操作,必要的时候,调用fsetpos()重置文件指针,让指针回到初始的位置。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门