C/fseek

Z Wikibooks, biblioteki wolnych podręczników.
< C

Deklaracja[edytuj]

int fseek(FILE *file, long offset, int mode);

Plik nagłówkowy[edytuj]

stdio.h

Opis[edytuj]

Funkcja fseek ustawia pozycję w pliku file na offset w zależności od wartości argumentu mode. Jeśli mode jest równy zero, to offset liczony jest od początku. Jeśli 1, to offset przesuwany od aktualnej pozycji, a 2 przesuwany o offset od końca pliku (wskaźnik pliku jest przesuwany do pozycji <koniec_pliku> + offset).

Wartość zwracana[edytuj]

Zero, w przypadku błędu wartość niezerowa.


Przykład użycia[edytuj]

#include <stdio.h>

int main()
{
    FILE *f = fopen("notatki.txt", "r+");
    if (f == NULL)
        return 1;

    fseek(f, 10, 0);   // dziesiąta pozycja, licząc od początku
    printf("%c\n", fgetc(f));
    fseek(f, 2, 1);   // trzynasta (10 + odczyt 1 znaku + 2) pozycja, licząc od początku (+2 licząc od bieżącej pozycji)
    printf("%c\n", fgetc(f));
    fseek(f, -10, 2);   // dziesiąta pozycja od końca
    printf("%c\n", fgetc(f));
    fclose(f);
    return 0;
}

Po uruchomieniu programu dla pliku

1234567890abcdefghijklmnoprst

Uzyskamy wynik

a
d
j