我正在尝试将 Windows、Linux 和 Mac 文件 IO 调用抽象为宏(以避免 C 运行时,所以没有fopen
, fclose
, ETC...)。我实际上做了很多工作,但遇到了绊脚石。
我试图将每个平台可能抛出的所有可能错误归结为常见错误的子集:未找到、存在、无效访问等。
Linux 显然有很好的文档,Mac 甚至有最常见的文档,但 Windows 没有指定其本机文件 I/O 函数抛出哪些错误。我们显然需要使用GetLastError()
,但我找不到可能的值的参考。
Windows 支持可安装的文件系统。 Microsoft 无法预测第 3 方文件系统驱动程序将生成何种类型的错误,因此不会尝试承诺可能的错误代码的严格子集。
所以是的,你确实必须使用 GetLastError()。 FormatMessage() 函数可用于生成错误代码的可读字符串。一般来说,用户会收到一条不错的错误消息,帮助他诊断根本原因。虽然还不够具体,无法说明智利的地震切断了海底通信电缆,但这肯定会帮助他开始研究网络问题等。您也可以使用 CRT 包装器,但不可避免地会损失特异性。这可能是您必须代替用户的 IT 人员处理的服务呼叫。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)