Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
programmirovanie / ОПиАЯ_№3_9_файл_слайды.doc
Скачиваний:
49
Добавлен:
03.03.2016
Размер:
113.15 Кб
Скачать

Файлы прямого доступа.

Функции 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(имя указателя на файл)[;]

определяет текущую позицию файлового указателя. Она возвращает величину смещения (в байтах) относительно начала файла.

Соседние файлы в папке programmirovanie