Способ хранения данных в бинарных (двоичных) файлах имеет два важных преимущества:
Увеличивается
скорость извлечения из файла данных, не носящих чисто текстового характера, так как не требуется действий по преобразованию их из текстового формата в двоичный.
Имеет место экономия памяти и дискового пространства, поскольку двоичная кодировка более компактна и нет необходимости в использовании управляющих символов.
Принципиально обработка двоичных файлов не очень сильно отличается от обработки текстовых файлов. В любом случае, прежде чем работать с файлом, следует открыть файл, указав режим доступа. Открыть файл для двоичной обработки можно посредством вызова функции fopen(), но ко всем режимам доступа добавляют строчную латинскую букву b. Режимы доступа одинаковы для текстовых и двоичных файлов. Если после вызова функции fopen() указатель на файловый поток f не равен нулю, его можно использовать в последующих обращениях к функциям работы с двоичными файлами, таким, как fwrite() и fread() . Закрывают двоичные файлы, как и текстовые, функцией fclose().
Функции fwrite() и fread() так же могут быть использованы для работы с текстовыми файлами, хотя чаще их используют для работы с бинарными файлами. Параметры функций:
ptr – указатель на исходные данные, читаемые из файла (записываемые в файл);
size – размер в байтах одного элемента данных;
Замечание. size_t – специальный идентификатор типа, который введен для обозначения типа результата, вычисляемого операцией sizeof. На самом деле идентификатор size_t является синонимом unsigned int.
n – число записываемых в файл элементов данных; stream – указатель на файловый поток.
Существует два способа доступа к элементам двоичных файлов: последовательный и произвольный.
Последовательный доступ к элементам файла особенно эффективен, если нужно перебрать все данные, хранящиеся в нем. Кроме того, если файл открыт для записи, но еще не содержит данных (т. е. пустой), то заполнение его возможно лишь в последовательном режиме.
Файлы (С )