最近经历几次停电后,我的电脑变得非常混乱(偶尔出现蓝屏,整个操作系统表现异常)。
现在我有一个在电脑出问题之前运行得非常完美的程序。这个程序基本上只是使用 CreateFile
创建文件,并使用 WriteFile
写入文件。此外,该程序还有其他功能根据该文件进行操作。我注意到整个程序的表现也很奇怪。
我的调试结果:
我注意到在CreateFile
之后,文件被创建在了正确的位置(使用资源管理器和命令行进行了检查)。
WriteFile
没有写入文件(同样使用资源管理器和命令行进行了检查)。在
WriteFile
之后,每当我在资源管理器中双击该文件或对该文件进行任何操作时,所有操作都表现得好像该文件不存在一样。所有API都返回了它们各自的成功代码。绝对没有错误。
在我停止程序并退出IDE之后,我进入资源管理器并尝试删除包含上述创建的文件的文件夹,结果显示如下:
图片
尽管如此,该文件已被删除。
注:以上情况并非总是发生。
由于上述调试,我得出结论,由于整个操作系统的异常行为,我的程序也表现出奇怪的行为。我的程序没有错(因为在那些可恶的电力故障之前,一切都运行完美)。
无论如何,微软有关于这个错误的说法。基本上是我的硬盘有很多坏道。
我的问题:在C语言中,是否有编程方法可以检查硬盘是否良好?此检测不需要100%正确。但我希望此检查非常快(因为我会进行许多写入等操作)。
我需要进行此检查,因为目前,我的程序的其余部分认为文件已经存在并且准备就绪(因为没有返回错误),从而导致各种奇怪的行为。作为可能不知道自己硬盘出现故障的用户,我希望我的程序建议运行磁盘检查。