Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Pomógł: GoldWolf
Język C++

fgetpos

[funkcja] Pobiera aktualną pozycję kursora odczytu/zapisu danych dla wskazanego strumienia.

Składnia

C/C++
#include <cstdio>

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

Argumenty

ArgumentOpis
FILE *streamOkreśla strumień na którym ma zostać wykonana operacja.
fpos_t *posWskaźnik na zmienną do której ma zostać pobrana aktualna pozycja kursora odczytu/zapisu danych.

Zwracana wartość

Zwraca wartość zero w przypadku sukcesu. W przeciwnym wypadku funkcja zwraca wartość różną od zera.

Opis szczegółowy

Funkcja pobiera aktualną pozycję kursora odczytu/zapisu danych dla wskazanego strumienia. Pobrana pozycja jest zapisywana do zmiennej na którą wskazuje wskaźnik przekazany poprzez drugi argument.

Pobranej pozycji nie należy interpretować w żaden sposób, ponieważ definicja typu » standard Cfpos_t jest zależna od posiadanej implementacji biblioteki. Odczytaną pozycję (przy pomocy funkcji fgetpos) należy wykorzystywać tylko i wyłącznie do poprawnego wywołania funkcji » standard Cfsetpos.

Dodatkowe informacje

Niektóre implementacje standardowych bibliotek C++ w przypadku wystąpienia błędu ustawiają dodatkowo kod błędu » standard Cerrno. Standard nie definiuje jednak tego zachowania, więc ewentualne ustawiane kody błędów należy weryfikować w dokumentacji zgodnej z posiadanym kompilatorem.

Przykład

C/C++
#include <cstdio>

void wypiszAktualnaPozycje( FILE * _pPlik )
{
    fpos_t pozycja;
    if( fgetpos( _pPlik, & pozycja ) != 0 )
         perror( "Nie udalo sie odczytac pozycji.\n" );
    else
         printf( "Aktualna pozycja: %d\n", pozycja );
   
}

int main()
{
    FILE * plik = fopen( "plik.txt", "r" );
    if( plik )
    {
        wypiszAktualnaPozycje( plik );
        char bufor[ 200 ];
        fgets( bufor, 200, plik );
        wypiszAktualnaPozycje( plik );
       
        fclose( plik );
    }
    return 0;
}

Zagadnienia powiązane

fpos_tTyp danych, używany do określania położenia danych w strumieniu. (alias)
fsetposUstawia pozycję kursora odczytu/zapisu danych dla wskazanego strumienia. (funkcja)
ftellZwraca aktualną pozycję kursora odczytu/zapisu danych dla wskazanego strumienia. (funkcja)

Linki zewnętrzne