QFile / QTextStream在写入的删除文件上不显示错误

时间:2013-10-03 04:32:41

标签: c++ file qfile qtextstream

我正在使用QTextStream写一个QFile,一切都很棒。我正在尝试创建一些错误检测,所以我尝试在写入之间删除输出文件。

扼杀,Qtextstream的状态继续显示0(无错误),QFile的错误方法返回0.但文件已经消失,写入的文字丢失了......已经消失了

发生了什么事?如何检测写入失败?我在看错了方法吗?

1 个答案:

答案 0 :(得分:1)

不确定Windows,但在Linux和大多数Unix类型的系统上,从操作系统的角度来看,您所描述的场景根本不是错误 - 继续写入已删除的文件是完全合法的(并且它“工作”,数据仍然是文件系统的混乱 - 文件系统中的文件仍然存在,直到它的最后一个句柄被关闭为止。

(我相信在Windows上,如果您尝试在使用文件时删除该文件,则会出现错误,至少在使用默认打开模式打开时 - 尽管不是100%确定。)

如果您需要检查“已删除文件”,则需要自行编写这些检查。