fgetpos

获取流的文件位置的。

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

参数

  • stream
    目标流。

  • pos
    位置指示器存储。

返回值

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

备注

fgetpos 函数获取 stream 参数的位置在当前文件的值并将其存储在 pos点为对象。 在调用 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 );
}

Input: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Output crt_fgetpos.txt

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

.NET Framework 等效项

System::IO::FileStream::Position

请参见

参考

流 I/O

fsetpos