比如在程序退出时,以下列代码保存数据: FILE *fp;
memcpy(str, zywbPath, 256);
if ((fp = fopen(strcat(str, "\\zywb.set"),"wb")) != NULL)
{
fwrite(&sys, sizeof(sys), 1, fp);
fclose(fp);
}在执行到fopen那一步的时候,原来的文件已经被删除了,似乎后面的写入过程出了什么差错,这个文件就丢失了。当然这个可能性很小。大家都是这么保存数据的吗?

解决方案 »

  1.   

    一般软件都是打开文件的时候创建一个备份(比如word),而不是关闭后再创建。
      

  2.   

    能说得详细一点吗?是打开文件的时候创建一个备份文件(扩展名为.bak?),然后程序执行的过程中,可以随时写入和改变文件,然后程序退出的时候,再保存一遍。等到保存成功。删除备份文件,是吗?或者备份文件永远不删,下次打开文件,再用新的备份文件覆盖旧的备份文件,是以上哪一种方法?谢谢!