检索 ifstream 打开失败时的错误消息
使用 ifstream 类打开文件时,处理潜在错误至关重要。 fail() 方法可以用来检查打开失败的情况,但是它没有提供任何有关失败原因的信息,例如“找不到文件”。
幸运的是,我们可以访问系统的错误消息以获得故障的更详细描述。每个失败的系统调用都会更新全局 errno 变量。通过利用此错误,我们可以使用以下方法收集有关失败的更多信息:
cerr << "Error: " << strerror(errno);
在多线程应用程序中,此方法需要谨慎使用,因为任何其他系统调用都可能会触发错误并在 strerror 之前更新 errno
对于遵循 POSIX 标准的系统,errno 值是线程本地的,确保在一个线程中设置它不会影响其值
虽然 e.what() 最初可能看起来是一个更特定于 C 的方法,但返回的字符串取决于实现。在 G 的 libstdc 中,该字符串通常不提供有用的失败信息。
以上是如何从'ifstream”打开失败中检索详细的错误消息?的详细内容。更多信息请关注PHP中文网其他相关文章!