Sdílet prostřednictvím


fgetpos

Získá indikátor pozice souboru datového proudu.

Syntaxe

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

Parametry

stream
Cílový datový proud.

pos
Úložiště ukazatele pozice.

Vrácená hodnota

V případě úspěchu fgetpos vrátí hodnotu 0. Při selhání vrátí nenulovou hodnotu a nastaví errno jednu z následujících konstant manifestu (definovaných v STDIO. H): EBADF, což znamená, že zadaný datový proud není platným ukazatelem souboru nebo není přístupný, nebo EINVAL, což znamená stream , že hodnota nebo hodnota pos je neplatná, například pokud je buď ukazatel null. Pokud stream nebo pos je ukazatel, funkce vyvolá neplatnou NULL obslužnou rutinu parametru, jak je popsáno v ověření parametru.

Poznámky

Funkce fgetpos získá aktuální hodnotu stream indikátoru umístění souboru argumentu a uloží ji do objektu, na který posodkazuje . Funkce fsetpos může později použít informace uložené k pos resetování ukazatele argumentu stream na jeho pozici v době fgetpos , kdy byla volána. Hodnota pos je uložena v interním formátu a je určena pouze pro použití a fsetposfgetpos .

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Function Požadovaný hlavičkový soubor
fgetpos <stdio.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// 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 );
}

Vstup: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Výstupní crt_fgetpos.txt

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

Viz také

Vstupně-výstupní operace streamu
fsetpos