Як і для потокового файлового доступу, в Turbo С є функція управління поточною позицією покажчика запису-читання, передбачена для використання з файлами, асоційованими з префіксами. Це функція - lseek().
#include <io.h>
long lseek( int handle, long offset, int fromwhere )
“Зсуває” покажчик запису-читання відкритого файлу, асоційованого з
префіксом handle, на offset байт. Якщо offset>0, виконується зміщення в
сторону EOF, якщо offset<0, виконується зміщення до початку файлу. Параметр
frormwhere задає точку відліку для зміщення:
SEEK_SET (0) |
зміщення виконується від початку файлу |
SEEK_CUR (1) |
зміщення виконується від поточної позиції
покажчика запису-читання файлу |
SEEK_END (2) |
зміщення виконується від кінця файлу |
Перелічені символьні константи визначені у файлах <stdio.h> та <io.h>.
У випадку успіху функція повертає встановлену позицію покажчика запису-читання,
виміряну від початку файлу. У випадку помилки повертається –1L, а код помилки
записується в зовнішню змінну errno.
Так як lseek() повертає встановлену позицію покажчика, то для визначення поточної позиції покажчика в файлі достатньо виконати “порожнє” переміщення покажчика відносно поточної позиції, наприклад:
long file_pos; int
handle;
...
/* Виконано префіксне відкриття файлу */
...
file_pos = lseek( handle, 0L, SEEK_CUR );
...
![]() |
![]() |
![]() |