我正在使用ncurses,并希望在文件中节省时间并打印。所以我正在这样做:
typedef struct {
struct tm* lastLoggedTime;
} Data_t;
void saveData(char *login, Data_t *Data)
{
FILE *file = fopen(login, "wb");
fwrite(Data, sizeof(Data_t), 1, file);
fclose(file);
file = NULL;
}
void loadSavedData(FILE *file, Data_t *Data)
{
fread(Data, sizeof(Data_t), 1, file);
}
...
Data_t Data;
char strtime[32];
time_t timer;
time(&timer);
Data.lastLoggedTime = localtime(&timer);
saveData(login, &Data);
...
FILE *savefile = fopen(login, "rb");
loadSavedData(savefile, &Data);
strftime(strtime, 32, "%Y-%m-%d %H:%M:%S", Data.lastLoggedTime);
printw("Last login: %s\n", strtime);
但是,我遇到了分割错误。GDB显示in发生在strftime_l.c中的第562行。
当结构具有指针时,您不能将结构写出到文件中。您保存数据的结构具有指向时间数据的指针,而不是实际数据的指针。
如果要保存数据,则必须自己序列化该结构。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句