Я работаю над проектом почтового ящика, и у меня есть эти две структуры:
struct 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 */
Не могли бы вы мне помочь? Я пытался искать везде, но так и не нашел человека, который попросил бы сохранить две структуры, одна внутри другой.