Типичным двоичным форматом файла для пользовательских данных является «индексированный формат файла», состоящий из
-------
|index|
-------
|data |
-------
Где указатель содержит записи, «указывающие» на данные.
Индекс состоит из записей, содержащих смещение и размер. Смещение указывает, где в файле хранятся данные, а размер - размер данных с этим смещением (т. Е. Количество байтов для чтения).
typedef struct {
size_t offset
size_t size
} Index
typedef struct {
int ID
char First[20]
char Last[20]
char *RandomInfo
} Data
Предположим, вы хотите сохранить 50 файлов в файле, вы бы создали 50 индексов и 50 структур данных. Сначала в файл будут записаны 50 структур индекса, а затем 50 структур данных.
Чтобы прочитать файл, который вы должны прочитать в 50 индексных структурах, затем из данных в индексных структурах для чтения вы можете указать, где "искать", чтобы прочитать записи данных.
Поиск (fopen, fread, fwrite, fclose, ftell) функций для чтения / записи данных.
(Извините, моя точка с запятой не работает)