|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Произвольный доступ к файлу
В приведенных выше программах с функциями ввода-вывода низкого уровня обмен с файлом осуществлялся последовательно. При необходимости файл можно читать на низком уровне и в произвольном порядке. Так же как это делалось при работе с потоками, можно изменять значение указателя текущей позиции чтения/записи в файле. Для этой цели служит функция lseek(). Прототип этой функции имеет следующий вид:
Функция lseek() изменяет текущую позицию в файле, связанном с дескриптором fd, на новую, определяемую смещением (второй параметр - offset) относительно выбранной точки отсчета (третий параметр - origin). Точка отсчета задается одной из предопределенных констант, размещенных в заголовочном файле io.h (MS-DOS) или файле unistd.h (UNIX):
SEEK_SET (имеет значение 0) - начало файла; SEEK_CUR (имеет значение 1)-текущая позиция; SEEK_END (имеет значение 2) - конец файла.
При удачном завершении функция lseek() возвращает новую текущую позицию чтения/записи, представляющую собой смещение от начала файла. Попытка переместиться за пределы файла считается ошибкой. Код ошибки заносится в глобальную переменную еrrnо, определенную в заголовочном файле errno.h. Для определения текущей позиции в файле можно использовать функцию tell(), прототип которой имеет следующий вид:
Приведем примеры использования функции lseek().
Пример 1. Установка текущей позиции в файле на его начало:
Пример 2. Установка текущей позиции для последующего добавления данных в файл (позиция в конце файла):
Пример 3. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.) |