假定文件已经有一个字节(假定为48)我打开此文件
然后把文件指针移动动末尾
写一个字节(假定为49)
关闭文件
在这个过程断电了.
这个文件是不是只有两种情况.
一,只有一个字节(内容为48)。
二,有两个字节(内容为48,49)。会不会有第三种情况:
比如第二个字节只写了一位(bit),就断电了
然后把文件指针移动动末尾
写一个字节(假定为49)
关闭文件
在这个过程断电了.
这个文件是不是只有两种情况.
一,只有一个字节(内容为48)。
二,有两个字节(内容为48,49)。会不会有第三种情况:
比如第二个字节只写了一位(bit),就断电了
否则“Anything is possible!”
因为这些问题是操作系统或VC考虑的问题我们调用CFile的Write函数,他要么成功,要么失败,如果他把文件损坏了,是MS的责任
因为,我们写文件的时候,
可能(实际上几乎是100%)多次调用CFile类的Write
Write了前几次就断电了
后面的就没执行
于是这个文件就损坏了
文件close的时候会加文件结束符
如果突然断电,来不及close就没结束符
这样问题,我们必须考虑
不过一般PC不需要吧
做做实验呢?
实验出每次突然断电之后能写的“最小有效字节数(或者)bit位,然后根据这个再写文件的时候设定有效标志,避免读取到错误的数据。不过胡斯乱想了一下,又觉得似乎没这个必要,你设定一个以‘字节’为单位的文件‘文件结束标志’,然后周期写入,假设意外断电了,结束标志没有正常写入,那么找到最后一个有小‘文件结束标志’……或者你根据文件字节数来判断,比如8个字节那就是64bit,一旦出现65bit,那最后一个就不要了……其实应该避免这种意外断电的情况。
----
正Write的时候断电了哦