【发布时间】:2011-08-26 05:36:11
【问题描述】:
我有一个 C 应用程序。它在启动时创建了与文件的连接,并连续运行了很多天。
我只连接一次。而不是在代码中重新连接它。 只检查是否
if(NULL == file)
我的应用程序是否会丢失该文件处理程序的 I/O 连接?
如果是。有没有办法,我怎样才能为它创建测试用例?
【问题讨论】:
我有一个 C 应用程序。它在启动时创建了与文件的连接,并连续运行了很多天。
我只连接一次。而不是在代码中重新连接它。 只检查是否
if(NULL == file)
我的应用程序是否会丢失该文件处理程序的 I/O 连接?
如果是。有没有办法,我怎样才能为它创建测试用例?
【问题讨论】:
是的,这是可能的。例如,如果文件在另一台机器上或在可移动存储上。然后你可以物理断开/拔出设备,手柄上的后续操作将失败。
正如 cmets 中的其他人所提到的,您可以通过创建 RAM 磁盘并卸载它或终止驱动程序来在测试用例中模拟它。或者,如果您只关心单向 I/O,也许您可以使用管道测试您的代码,然后关闭管道的另一端。
【讨论】:
rofs);然后杀死/崩溃保险丝程序(驱动程序)并访问安装点:'endpoint not connected'
您可以断开与文件的连接,但它不会将您的文件变量设置为 NULL,症状将是 IO 错误。读或写都会失败。 (对于 C++ 流,将设置 badbit 而不是为格式错误设置的 failbit;)
【讨论】: