Використання функції сі fseek

9 0 Новини високих технологій

Читання з файлу здійснюється послідовно, тобто після виконання чергової операції зчитування курсор буде встановлений на наступний непрочитанный символ. Змінити положення покажчика можна за допомогою функції fseek(). Вона використовується для переміщення вказівника файлу в певну позицію. Функція fseek() задана в стандартній бібліотеці мови Сі — stdio.h, тому на початку програми, в якій функція буде використовуватися, повинно бути декларація: #include .

Використання функції сі fseek

Опис функції fseek в сі

Int fseek(FILE *FilePointer, long offset, int pos) - функцію передаються такі аргументи:
  • FILE *FilePointer - вказівник на об'єкт FILE. До використання функції необхідно відкрити файл за допомогою функції fopen().
  • Offset — через даний аргумент у функцію передається, на скільки байт повинен бути зміщений покажчик. Тип довге ціле (long int). Позитивне значення параметра означає зміщення вправо, а негативне вліво.
  • Pos — визначає позицію, з якої додається зсув. Тип даного аргументу ціле (int).
  • Параметр pos визначає відправну точку, від якої буде відраховуватися зміщення. Він може приймати три значення - 012 які рівносильні символьним константам SEEK_SET(0), SEEK_CUR(1) і SEEK_END(2):


  • Значення параметра pos одно SEEK_SET — зміщення буде визначатися відносно початку файлу.
  • При значенні рівному SEEK_CUR зміщення вважається від поточної позиції курсору.
  • Якщо він має значення SEEK_END, отже, зміщення буде відраховуватися від кінця файлу.
  • Функція сі fseek повертає нуль у разі успішного переміщення покажчика і будь-яке ненульове значення, якщо вона не змогла виконати потрібну дію, наприклад, у разі виходу покажчика за кордону файлу. Значення, що повертається, буде дорівнювати EBADF при передачі у функцію невірного покажчика файлу, EINVAL у разі неприпустимого значення аргументу або ESPIPE при помилці в параметрі offset, наприклад, вихід за межі файлу.
    Використання функції сі fseek

    Приклад



    Програма



    Опис



    #include

    int main()

    {

    FILE *fp;

    fp = fopen("test.txt", "r");

    fseek(fp, 7 SEEK_CUR);

    printf("%ld", ftell(fp));

    fclose(fp);

    return 0;

    }



    Підключаємо стандартну бібліотеку мови С stdio.h Задаємо файлову змінну Відкриваємо файл на читання Переміщаємо курсор на 7 байт вперед від поточного положення (оскільки ми тільки відкрили файл, курсор знаходиться на початку) Друкуємо поточне положення курсору за допомогою функції ftell() Закриваємо файл

    Крім розглянутої, є і інші функції для роботи з покажчиком, наприклад:

  • Rewind() - використовується для установки курсору в початок файлу.
  • Ftell() - повертає положення покажчика в даний момент.
  • Feof() - служить для ідентифікації кінця файлу. При досягненні кінця файлу значення функції буде дорівнює true.
  • Заключні зауваження

    При роботі з даною функцією потрібно пам'ятати, вона працює тільки з потоковим введенням-виведенням. Також не слід забувати закривати файл функцією fclose().