fsetpos()详解

原创 2011年01月08日 17:01:00

//在网上搜了那么长时间,终于搜到了这个帖子

函数原型:int fsetpos(FILE *fp, const fpos_t *pos);

头文件:#include<stdio.h>

是否是标准函数:是

函数功能:将文件指针定位在pos指定的位置上。该函数的功能与前面提到的fgetpos相反,是将文件指针fp按照pos指定的位置在文件中定位。pos值以内部格式存储,仅由fgetposfsetpos使用。

返回值:成功返回0,否则返回非0

例程如下 应用fsetpos函数定位文件指针。

#include <stdio.h>

void main( void )

{

   FILE   *fp;

   fpos_t pos;

   char   buffer[50];

   /*以只读方式打开名为test.txt的文件*/

   if( (fp = fopen( "test.txt", "rb" )) == NULL )

      printf( "Trouble opening file/n" );

   else

   {

      /*设置pos*/

      pos = 10;

      /*应用fsetpos函数将文件指针fp按照

      pos指定的位置在文件中定位*/

      if( fsetpos( fp, &pos ) != 0 )

        perror( "fsetpos error" );

            else

            {

                /*从新定位的文件指针开始读取16个字符到buffer缓冲区*/

                fread( buffer, sizeof( char ), 16, fp );

                 /*显示结果*/

                printf( "16 bytes at byte %ld: %.16s/n", pos, buffer );

                }

      }

   fclose( fp );

}

例程说明:

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

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

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

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

相关文章推荐

【C语言】 fgetpos和fsetpos的参数问题

fgetpos和fsetpos的参数分别为: int fgetpos(FILE *stream, fpos_t *pos); int fsetpos(FILE *stream, const fpo...

fseek/ftell/rewind/fgetpos/fsetpos函数使用-linux

fseek(移动文件流的读写位置) 头文件 #include 定义函数 int fseek(FILE * stream,long offset,int whence); 函数说明 fseek()用来移...

spring 事务详解

  • 2017年11月21日 20:45
  • 61KB
  • 下载

详解Hibernate中的二级缓存

1.前言 这篇博客再前几篇博客的基础上来讲解一下,Hibernate中的二级缓存,二级缓存是属于SessionFactory级别的缓存机制。第一级别的缓存是Session级别的缓存,是属于事务范围的...

iOS Sonar集成流程详解

  • 2017年11月20日 13:43
  • 683KB
  • 下载

VC++深入详解(修订版) (E)

  • 2017年11月19日 21:06
  • 1.96MB
  • 下载

Linux工作管理与系统资源查看详解

Part One 工作管理   工作管理指的是在单个登录终端同时管理多个工作的行为。Linux中的工作管理,简而言之就是把工作放在后台运行的行为。在windows中,我们经常也会针对各种工作做出管理...

nginx高性能web服务器详解

  • 2017年11月17日 16:11
  • 27.25MB
  • 下载

fastjson jar 使用详解 实例

  • 2017年11月16日 10:38
  • 357KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fsetpos()详解
举报原因:
原因补充:

(最多只允许输入30个字)