fseek, _fseeki64 函数应用

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fseek, _fseeki64 函数应用相关的知识,希望对你有一定的参考价值。

fseek, _fseeki64

作用

将文件指针移到指定位置。

头文件

fseek		<stdio.h>
_fseeki64	<stdio.h>

函数原型

int fseek(
   FILE *stream,
   long offset,
   int origin
);
int _fseeki64(
   FILE *stream,
   __int64 offset,
   int origin
);

参数

  • stream
    指向 FILE 结构的指针。
  • offset
    中的字节数 origin 。
  • origin
    初始位置。

自变量 origin 必须是下列常量之一,在中定义 stdio.h :

原始值含义
SEEK_CUR文件指针的当前位置。
SEEK_END文件结尾。
SEEK_SET文件开头。

返回值

如果成功, fseek 则 _fseeki64 返回0。
否则,返回一个非零值。

在无法查找的设备上,返回值是未定义的。 如果 stream 为 null 指针,或者如果不 origin 是下面所述的允许值之一, fseek 则 _fseeki64 调用无效参数处理程序,如 参数验证中所述。 如果允许执行继续,则这些函数将设置 errno 为 EINVAL 并返回-1。

备注

https://docs.microsoft.com/zh-cn/cpp/c-runtime-library/reference/fseek-fseeki64?view=msvc-170#remarks

代码示例


文件中

// crt_fseek.c
// This program opens the file FSEEK.OUT and
// moves the pointer to the file's beginning.

#include <stdio.h>

int main( void )

   FILE *stream;
   char line[81];
   int  result;

   if ( fopen_s( &stream, "fseek.out", "w+" ) != 0 )
   
      printf( "The file fseek.out was not opened\\n" );
      return -1;
   
   fprintf( stream, "The fseek begins here: "
                    "This is the file 'fseek.out'.\\n" );
   result = fseek( stream, 23L, SEEK_SET);
   if( result )
      perror( "Fseek failed" );
   else
   
      printf( "File pointer is set to middle of first line.\\n" );
      fgets( line, 80, stream );
      printf( "%s", line );
    
   fclose( stream );

以上是关于fseek, _fseeki64 函数应用的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上用 C++ 寻找大文件

代码示例_IO_fseek

C 语言文件操作 ( fseek 函数 )

C 语言文件操作 ( fseek 使用注意事项 | fseek 函数返回值分析 )

C语言文件指针定位函数fseek与rewind有何区别?

C语言文件指针定位函数fseek与rewind有何区别?