Есть ли способ получить конкретное состояние ошибки при сбое открытия потока C ++? То есть, произошел ли сбой, потому что файл не существует, или разрешения были неправильными, и т. Д. В основном я ищу функциональность, эквивалентную errno для fopen () в простом C.
GCC, кажется, устанавливает errno правильно, но это не требуется стандартом C ++, и я не могу определить, является ли это просто артефактом того, как они реализовали потоки, или преднамеренной функцией (и поэтому я не знаю, будет ли оно сохраняться в разных версиях).
Есть ли способ получить эту информацию надежно, либо в стандартном C ++, либо случайно в одном или нескольких основных компиляторах?