应用程序是否可能丢失与文件的I / O连接?

时间:2011-05-16 07:22:08

标签: c++ c

我有一个C应用程序。这会在启动时创建与文件的连接,并且会持续运行很多天。

我只连接一次。而不是在代码中重新连接它。 只检查是否

if(NULL == file)

是否可能存在我的应用程序丢失该文件处理程序的I / O连接的情况?

如果是的话。有没有办法,我怎样才能为它创建测试用例?

2 个答案:

答案 0 :(得分:9)

是的,这是可能的。例如,如果文件位于另一台计算机上或可移动存储上。无论哪种方式,您都可以物理断开/拔出设备,并且句柄上的后续操作将失败。

要自动模拟此功能,您需要在驱动程序级别上进行攻击。

答案 1 :(得分:8)

您可以断开与文件的连接,但不会将文件变量设置为NULL,症状将是IO错误。阅读或写作都会失败。 (对于C ++流,将设置badbit而不是为格式错误设置的failbit;)