C程序里 文件读写的问题

zengkun100 zengkun100 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在我的程序里会写文件,为了保护文件不因为意外的原因被损毁,我定时备份一份。代码大致是这样的:
void SaveFile()
{
static int counter = 0;
------------------把内存里的东西写进文件---------------------------------------
//打开待写的文件,
FILE * fp = fopen( filename, "w" );
//向文件里写
fprintf(fp, ……)
//关闭文件
fclose(fp)
------------------把内存里的东西写进备份文件----------------------------------
if(++counter%5 == 0)
{
//打开备份文件,
FILE * fp = fopen( bakfilename, "w" );
//向备份文件里写
fprintf(fp, ……)
//关闭备份文件
fclose(fp)
}
}

SaveFile函数200毫秒被调用一次。每200毫秒,程序就会把内存的内容写入文件,每1秒钟,把内存的内容向备份文件里写一份。
我觉得按照我上面的代码逻辑,任何时候只有一个文件在操作,这样即使程序意外死掉,或者机器掉电,那么也只有一个文件被损坏,另一个文件是好的。
可事实上,在按下reset键后,发现2个文件都被损坏了。

不知道为什么啊!请高人指教!
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
zengkun100
C语言 70,039 成员 243,237 内容