常见的做法是在写入文件的时候,写一个包括count的头信息
typedef struct _HeadInfo { size_t count; } HeadInfo;
HeadInfo info;
....
info.count = count; // buffer中的记录数量
fwrite(&info, sizeof(info), 1, fp);
fwrite(buffer, size, count, fp);
读的时候
fread(&info, sizeof(info), 1, fp);
buffer = calloc(size, info.count);
fread(buffer, size, count, fp);
这儿定义一个HeadInfo,只是方便在里面加入其它信息,比如魔术字,用来判断文件是否合法。
上面的代码用于说明思路,不保证没有写错的地方。
typedef struct _HeadInfo { size_t count; } HeadInfo;
HeadInfo info;
....
info.count = count; // buffer中的记录数量
fwrite(&info, sizeof(info), 1, fp);
fwrite(buffer, size, count, fp);
读的时候
fread(&info, sizeof(info), 1, fp);
buffer = calloc(size, info.count);
fread(buffer, size, count, fp);
这儿定义一个HeadInfo,只是方便在里面加入其它信息,比如魔术字,用来判断文件是否合法。
上面的代码用于说明思路,不保证没有写错的地方。