【发布时间】:2012-01-25 23:21:09
【问题描述】:
我正在做一个邮箱项目,我有这两种结构:
结构 mmbox_mail
struct mmbox_mail {
char *sender, *recipient;
char *obj, *date;
char flags;
size_t size;
};
和
mail_t
typedef struct{
struct mmbox_mail info;
void *body;
void *next;
} mail_t;
我无法修改结构的字段,因为我需要可变数据(为此我使用了 char* 而不是 char[])。
每个 mail_t 结构都是一个邮件。我需要将用户的每封邮件保存在一个文件中,可以是二进制文件或文本文件(但我认为使用二进制文件更好,因为我的 void* 正文很难以纯文本格式保存。
我尝试过这样做,但似乎不起作用:
while(mailtmp != NULL){
fwrite(mailtmp, sizeof(mail_t), 1, fp);
/* next mail */
mailtmp=mailtmp->next;
}
while(mailtmp != NULL){ /* i have a list of mails and i use a mailtmp pointer to save each mail */
你能帮帮我吗?我试图到处搜索,但从未找到有人要求保存两个结构,一个在另一个内部。
【问题讨论】: