【发布时间】:2010-08-14 12:13:04
【问题描述】:
有没有我在学校错过的标准方法以合理的方式将 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.
编辑:
我已经扩展了主要结构,似乎之前的一个没有完全说明问题。 我知道磁盘上的指针是无用的。 允许想法和伪代码。
【问题讨论】:
标签: c memory-management linked-list nested-lists diskimage