共用方式為


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。fsetpos函式可以使用資訊儲存在pos重設stream引數的指標,它的位置時, fgetpos呼叫。pos值會儲存在內部的格式,並且只能由適用於fgetpos和fsetpos。

需求

Function

所需的標頭

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-tw,VS.110).gif輸出 crt_fgetpos.txt

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

.NET Framework 對等用法

System::IO::FileStream::Position

請參閱

參考

資料流 I/O

fsetpos