Файлы прямого доступа.
Функции
fread
и
fwrite
обрабатывают
последовательности байтов.
Они удобны при передаче составных данных
в двоичном
формате.
Функция
fread(указатель,
размер, количество, имя указателя на
файл)[;]
читает из файла
указанное количество данных. Размер
каждого данного задан в байтах. Читаемая
информация помещается в область памяти,
адресуемую указателем. Функция возвращает
число фактически считанных данных.
К примеру, введем
структуру Dic
из файла F:
fread(&Dic,
sizeof( Dic),
1,
F);
Так как в списке
аргументов установлено, что следует
читать по одной структуре, то текущее
значение функции равно
1. После
достижения конца файла функция возвращает
0.
Функция
fwrite(указатель,
размер, количество, имя указателя на
файл)
;
пишет данные в
файл. Список ее аргументов аналогичен
списку аргументов функции
fread.
Функция возвращает число фактически
записанных данных. Например, перешлем
на диск структуру
DicStr:
fwrite
(Dic,
sizeof(DicStr),
1,
F);
Следующие две
функции служат для прямого
доступа
к байтам (обычно внутри двоичных файлов).
Функция
fseek(имя
указателя на файл, смещение, откуда)[;]
перемещает файловый
указатель на заданное смещением число
байтов, начиная с позиции, установленной
аргументом откуда.
Смещение
— это
длинное целое,
а откуда
— это есть:
SEEK-SET
— смещение
от начала файла;
SEEK-CUR
— смещение
от текущей позиции файлового указателя;
SEEK-END
— смещение
от конца файла.
При успешном
выполнении функция возвращает
0.
Попытка установить файловый указатель
перед началом файла является ошибкой,
и тогда fseek
возвращает ненулевое значение.
Функция
ftell(имя
указателя на файл)[;]
определяет текущую
позицию файлового указателя. Она
возвращает величину смещения (в байтах)
относительно начала файла.