关于断点下载的配置文件出现的问题。

找找乐儿 2009-12-11 03:50:44
断点下载,需要配置文件,但有的时候,比如说遇到强行关闭程序,断电等问题,配置文件可能会凑巧遇到清零的情况。

我写配置文件的语句:
try
{
fseek(configfile,0,0);
fwrite(info,sizeof(char),info.GetLength(),configfile);
fclose(configfile);

}
因为我不想把配置文件弄的特别大,所以我每次写入配置文件的时候会选择覆盖原来的数据。如果很凑巧的话,刚刚执行到fwrite(info,sizeof(char),info.GetLength(),configfile);这句的时候,遇到上面的情况。就会导致配置文件数据清零或者不全。并且测试的时候,发现这种情况出现的几率也不是很小。所以想问问大家有没有好的办法避免这种情况。
不过我的前提是,不能每次都在配置文件的最后加入新的配置信息,最好覆盖原有的信息,否则如果要下载的文件很大的话,配置文件也会变的很庞大。
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nintendo_dskay 2009-12-12
  • 打赏
  • 举报
回复
在对配置文件进行写操作之前先备份啊,如果断电了就恢复这个备份文件,将损失减到最小。写完之后就将备份文件删除即可。这样无论在哪个阶段出异常,都保证了可以有其中一个未损坏的配置文件可以使用。
ccpaishi 2009-12-11
  • 打赏
  • 举报
回复
像一般的下载软件的话,一般会隔一段时间自动记录一下。
一般来说,写两个结构体就好了,分别覆盖。楼主的第二种做法也是还可以。断点续传不需要一定完全准确,时间就看需求和需要记录信息的大小。跟需求而定。
找找乐儿 2009-12-11
  • 打赏
  • 举报
回复
我想到一种方法,就是很麻烦,比如说准备两个配置文件,每次写配置信息的时候,往两个文件中都写入。读取的时候,如果默认的那个文件信息不全或为0的话,就去读另外一个备份的。这样可以避免这种情况,
想问问大家有没有更好的办法呢?
等。。。。。。。。。。。。。。。。。。。。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧