ファイル出入力が失敗したときに詳細を報告するため、以下のようなコードを思いつきました。
try
{
 errno = 0;
 std::ofstream output( ... );
 output.exceptions( std::ios::badbit | std::ios::failbit );
 ...
 output.close();
}
catch( std::exceptions const& e )
{
 throw std::runtime_error( ( errno != 0 ) ? std::strerror( errno ) : e.what() );
}

そこで質問なんですけど、C++例外処理とerrnoの親和性ってどうなんでしょうか?
とりあえず、ファイルが開けなかったりする単純なケースでは上手く動いてくれているみたいです。
上のようなコードでとんちんかんなエラーを報告してしまわないか、少し心配です。