Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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