有没有我在学校错过的标准方法以合理的方式在磁盘上转储带有嵌套链表的 C 结构?我不想做的是:
- 使用协议缓冲区或任何其他类似的序列化器,
- 不想创建 JSON、XML 或其他
我有几个想法:
- 分配准确的内存量(或扩展现有的内存量)并自己管理它,将列表元素放在堆栈中,使用一些额外的字段来管理相对地址。必要时在磁盘上转储块。具有从磁盘映射块的过程可以创建可识别字节顺序的理想结构。
- 将主要结构推入文件,然后推入列表元素,将有关列表的信息存储在文件头中。
为了形象化,我将提供更多详细信息,发布示例代码:
typedef struct{
int b;
List *next;
}List;
typedef struct{
float b;
List2 *next;
}List2;
typedef struct{
List *head;
List *tail;
} info;
typedef struct{
List2 *head;
List2 *tail;
} info2;
struct data
{
int a;
char t[10];
info first;
info second;
info2 third;
};
欢呼P。
编辑:
我已经扩展了主要结构,似乎以前的结构并没有完全说明问题。我知道磁盘上的指针是无用的。允许想法和伪代码。