fgetpos
Ruft Stellungsanzeiger eines Streams ab.
int fgetpos(
FILE *stream,
fpos_t *pos
);
Parameter
stream
Zielstream.pos
Position-Indikatorspeicher.
Rückgabewert
Wenn erfolgreich, fgetpos gibt 0 zurück. Bei einem Fehler wird ein Wert ungleich 0 (null) zurück und legt errno auf eine der folgenden Manifestkonstanten fest (in STDIO.H): EBADF, der den jeweiligen Stream bedeutet, ist kein gültiger Dateizeiger oder ist nicht möglich oder EINVAL verwendet, der Folgendes bedeutet, dass der stream-Wert oder der Wert von pos ungültig wird, beispielsweise, wenn entweder ein NULL-Zeiger ist. Wenn stream oder pos ein NULL Zeiger ist, ruft die Funktion den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben.
Hinweise
Die Funktion ruft fgetpos den aktuellen Wert des stream Stellungsanzeigers Arguments ab und speichert ihn im Objekt, das auf den durch pos gezeigt wird. Die fsetpos-Funktion kann Informationen später verwenden, die in pos gespeichert werden, um den Zeiger des stream-Arguments an seiner Position zurückzusetzen, wenn fgetpos aufgerufen wurde. Der Wert pos wird in einem internen Format gespeichert und ist nur über fgetpos und fsetpos bestimmt.
Anforderungen
Funktion |
Erforderlicher Header |
---|---|
fgetpos |
<stdio.h> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Beispiel
// 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 );
}
Eingabe: crt_fgetpos.txt
fgetpos gets a stream's file-position indicator.
Ausgabe crt_fgetpos.txt
after fgetpos: gets a stream
after fsetpos: gets a stream
.NET Framework-Entsprechung
System::IO::FileStream::Position