Читайте также:
|
|
Файл предназначен для последовательного доступа к нему, другими словами, для обращения к определенному символу этого файла нужно прочитать все символы, расположенные перед ним. Однако существует функция fseek(), которая имитирует произвольный доступ. Эта функция перемещает файловый указатель на заданное количество позиций, производя отсчет от начала файла, от текущей позиции или от конца файла. Функция fseek() именно имитирует произвольный доступ, а не осуществляет его, поскольку для перемещения указателя на требуемую позицию эта функция передвигает его шаг за шагом, а не обращается к символу напрямую, как это происходит при работе с массивом.
Рассмотрим работу функции fseek() на примере файла со следующим содержимым:
.
fseek(myFile, 0, SEEK_SET);
putchar(fgetc(myFile));
fseek(myFile, -1, SEEK_END);
putchar(fgetc(myFile));
fseek(myFile, 20, SEEK_SET);
putchar(fgetc(myFile));
fseek(myFile, -20, SEEK_END);
putchar(fgetc(myFile));
fseek(myFile, 32, SEEK_SET);
putchar(fgetc(myFile));
fseek(myFile, -33, SEEK_END);
putchar(fgetc(myFile));
Константа | SEEK_SET | SEEK_CUR | SEEK_END |
Позиция | Начало файла | Текущая позиция | Конец файла |
Еще одна полезная функция, относящаяся к произвольному доступу, – это функция ftell(), которая возвращает номер текущей позиции, производя отсчет от начала файла.
Дата добавления: 2015-08-17; просмотров: 57 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Бинарный и текстовый режимы | | | Вывод файла в обратном порядке |