Aracılığıyla paylaş


fgetpos

Bir akışın dosya konumu göstergesini alır.

Sözdizimi

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

Parametreler

stream
Hedef akış.

pos
Konum göstergesi depolama.

Dönüş değeri

Başarılı olursa, fgetpos 0 döndürür. Hata durumunda sıfır olmayan bir değer döndürür ve aşağıdaki bildirim sabitlerinden birine (STDIO'da tanımlanır) ayarlarerrno. H): EBADF, belirtilen akışın geçerli bir dosya işaretçisi olmadığı veya erişilebilir olmadığı anlamına gelir ya da EINVALdeğeri veya değeri pos geçersiz (null işaretçi gibi) anlamına gelirstream. veya pos bir işaretçiysestream, işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre NULL işleyicisini çağırır.

Açıklamalar

İşlev, fgetpos bağımsız değişkenin dosya konumu göstergesinin stream geçerli değerini alır ve tarafından posişaret edilen nesnede depolar. İşlev fsetpos daha sonra bağımsız değişkenin stream işaretçisini çağrıldığı sırada fgetpos konumuna sıfırlamak için içinde pos depolanan bilgileri kullanabilir. pos Değer iç biçimde depolanır ve yalnızca ve fsetpostarafından fgetpos kullanılmak üzere tasarlanmıştır.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

İşlev Gerekli başlık
fgetpos <stdio.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

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

Giriş: crt_fgetpos.txt

fgetpos gets a stream's file-position indicator.

Çıkış crt_fgetpos.txt

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

Ayrıca bkz.

Akış G/Ç
fsetpos