fgetpos

获取流的文件位置指示符。

int fgetpos( 
   FILE *stream,
   fpos_t *pos 
);

参数

  • stream
    目标流。

  • pos
    位置指示符存储。

返回值

如果成功, fgetpos 返回 0。 在失败,将返回非零值并将 errno 到以下清单常数之一 (定义在 STDIO.H): EBADF,这意味着指定的流不是有效的文件指针也无法访问或 EINVAL,这意味着 stream 值或 pos 的值无效,例如,如果其中一个是一个 null 指针。 如果 stream 或 pos 是 NULL 指针,该函数调用的参数无效处理程序,如 参数验证所述。

备注

fgetpos 函数在 pos所指向的对象获取 stream 参数的文件位置指示符的当前值并将其存储。 ,在 fgetpos 每次调用, fsetpos 功能以后可以使用在 pos 存储的信息重置 stream 参数的指针到其位置。 pos 值在内部格式存储和仅供使用。 fgetpos 和 fsetpos。

要求

功能

必需的头

fgetpos

stdio.h

有关其他的兼容性信息,请参见中介绍的 兼容性

示例

// crt_fgetpos.c
// This program uses fgetpos and fsetpos to
// return to a location in a file.

#include <stdio.h>

int main( void )
{
   FILE   *stream;
   fpos_t pos;
   char   buffer[20];

   if( fopen_s( &stream, "crt_fgetpos.txt", "rb" ) ) {
      perror( "Trouble opening file" );
      return -1;
   }

   // Read some data and then save the position. 
   fread( buffer, sizeof( char ), 8, stream );
   if( fgetpos( stream, &pos ) != 0 ) {
      perror( "fgetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fgetpos: %.13s\n", buffer );

   // Restore to old position and read data 
   if( fsetpos( stream, &pos ) != 0 ) {
      perror( "fsetpos error" );
      return -1;
   }

   fread( buffer, sizeof( char ), 13, stream );
   printf( "after fsetpos: %.13s\n", buffer );
   fclose( stream );
}

输入:crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

70hdhh4t.collapse_all(zh-cn,VS.110).gif输出 crt_fgetpos.txt

after fgetpos: gets a stream
after fsetpos: gets a stream

.NET Framework 等效项

系统:: IO:: FileStream:: 位置

请参见

参考

流I/O

fsetpos