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 EINVAL
değ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 pos
iş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 fsetpos
tarafı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