【问题标题】:How to intercept "Windows - corrupt file" error in C如何在 C 中拦截“Windows - 损坏的文件”错误
【发布时间】:2014-02-10 18:02:25
【问题描述】:

我有一个应用程序每秒写入一个小数据文件并重命名以前的文件版本。有时(很少)系统没有正确关闭(我的客户知道他不应该这样做,但他还是这样做了......)并且文件系统被损坏。

确实,当应用程序尝试打开数据文件时,会出现一个提示 Windows 损坏文件的消息气球。请注意,我还没有设法在我的测试环境中重现该事件,所以我所知道的只是客户向我报告的内容。

现在我至少会阻止我的应用程序运行并尽快拦截文件损坏,以警告用户并(如果可能)自动执行 reboot-chkdsk 序列。 有没有办法在 C 程序中拦截filesystem corruption error(例如,通过尝试打开文件并检查返回的错误代码)?请注意,我不确定能否重现这种情况(这就是我问这个问题的原因!)。

我目前使用的系统是Windows XP SP3 (32 bits)Windows 7 64 bits

【问题讨论】:

    标签: c winapi windows-xp ntfs


    【解决方案1】:

    尝试使用SEM_FAILCRITICALERRORS 标志调用SetErrorMode(),然后在打开/读取/写入文件时检查ERROR_FILE_CORRUPT 错误代码(也可能是ERROR_DISK_CORRUPT)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 2021-01-16
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      相关资源
      最近更新 更多