当C++流打开失败时,您是否可以获得特定的错误条件?

Joe*_*ley 13 c++ stream

当C++流打开失败时,有没有办法获得特定的错误条件?也就是说,它是否因为文件不存在而失败,或者权限是错误的,等等.基本上我正在寻找与普通C中的fopen()相当的errno功能.

GCC似乎正确地设置了errno,但C++标准似乎并不需要它,我无法确定这是否只是它们实现流的方式或故意特征(因此我不是知道它是否会持续存在版本).

有没有办法可靠地获取此信息,无论是标准C++还是非意外地在一个或多个主要编译器中?

Gor*_*son 0

在 Visual Studio fopen 等中设置最后一个错误代码值。可以使用GetLastError()检索它。结果将是这些值之一。