Udostępnij za pośrednictwem


fgetpos

Pobiera wskaźnik położenia pliku strumienia.

Składnia

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

Parametry

stream
Strumień docelowy.

pos
Magazyn wskaźnika położenia.

Wartość zwracana

Jeśli operacja powiedzie się, fgetpos zwraca wartość 0. W przypadku błędu zwraca wartość niezerową i ustawia errno na jedną z następujących stałych manifestu (zdefiniowanych w stDIO). H): EBADF, co oznacza, że określony strumień nie jest prawidłowym wskaźnikiem pliku lub nie jest dostępny albo , co oznaczastream, że wartość lub wartość pos jest nieprawidłowa, EINVALna przykład jeśli jest wskaźnikiem o wartości null. Jeśli stream lub pos jest wskaźnikiem, funkcja wywołuje nieprawidłową procedurę NULL obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów.

Uwagi

Funkcja fgetpos pobiera bieżącą wartość stream wskaźnika pozycji pliku argumentu i zapisuje ją w obiekcie wskazywanym przez poselement . Funkcja fsetpos może później używać informacji przechowywanych w programie pos , aby zresetować stream wskaźnik argumentu do jego pozycji w momencie fgetpos wywołania. Wartość pos jest przechowywana w formacie wewnętrznym i jest przeznaczona do użytku tylko przez elementy fgetpos i fsetpos.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Function Wymagany nagłówek
fgetpos <stdio.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

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

Dane wejściowe: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Dane wyjściowe crt_fgetpos.txt

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

Zobacz też

We/Wy strumienia
fsetpos