应用程序是否有可能丢失与文件的 I/O 连接
Is it possible that application can lose I/O connection to a file?
我有一个C应用程序。这会在启动时创建与文件的连接,并连续运行很多天。
我只连接一次,而不是在代码中重新连接它。仅检查是否
if(NULL == file)
是否存在我的应用程序丢失该文件处理程序的I/O连接的情况?
如果是。有没有办法,如何为它创建测试用例?
是的,这是可能的。例如,如果文件位于另一台计算机或可移动存储上。然后,您可以物理断开/拔下设备,手柄上的后续操作将失败。
正如评论中提到的其他人,您可以通过创建 RAM 磁盘并卸载它或杀死驱动程序来在测试用例中模拟它。或者,如果您只关心单向 I/O,也许您可以使用管道测试代码,然后关闭管道的另一端。
您可以断开与文件的连接,但它不会将文件变量设置为 NULL,症状将是 IO 错误。 读取或写入将失败。(对于C++流,将设置坏位而不是为格式错误设置的故障位;
相关文章:
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 连接资源文件中的字符串,并将其传递给菜单项字符串 (winapi) c++
- 将文本和二进制数据连接到一个文件中
- 头文件和库文件连接
- 连接两个文件时如何避免冗余尾随换行符?
- GLM如何在不声明内联函数并在另一个(未连接的?)文件中将其定义的函数逃脱
- 似乎无法将我的标题文件与我的CPP文件连接到链接列表中
- 使用二进制读取和写入连接文件
- 连接QT中的多个.UI文件
- 我如何连接文件路径
- 头文件连接
- COM 客户端连接 COM 服务器所需的文件是什么(进程外方案)
- C++应用程序连接到网站服务器并根据密码检索文件
- 头文件如何连接到相应的.cpp文件?
- 通过终端接收 3 个文件,并使用 fstream 将 file2 和 file3 的内容连接到文件 1
- Linux复制文件连接到节点JS / Python / C / C 之后
- 如何连接两个文件夹/项目的生成文件,这两个文件夹/项目必须一起运行且独立运行
- C++返回对成员的连接文件,因此可以由同一类的其他方法使用
- 在 Mac 上使用 boost::文件系统连接文件路径时程序崩溃
- 连接C ++文件和Gnuplot并在执行后自动绘图