Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Crt_fgetpos.txt danych wyjściowych
after fgetpos: gets a stream
after fsetpos: gets a stream