Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Произвольный доступ к файлу




Файл предназначен для последовательного доступа к нему, другими словами, для обращения к определенному символу этого файла нужно прочитать все символы, расположенные перед ним. Однако существует функция 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-05; просмотров: 82; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты