C程序里 文件读写的问题
在我的程序里会写文件,为了保护文件不因为意外的原因被损毁,我定时备份一份。代码大致是这样的:
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个文件都被损坏了。
不知道为什么啊!请高人指教!