ifstream を使用してファイルを開こうとすると、さまざまな理由で open メソッドが失敗する可能性があります。失敗に関連する特定のエラー メッセージを取得するには:
エラー コードについて
失敗したすべてのシステム コールで errno 値が更新されます。この値は、失敗の原因に関する情報を提供します。
エラー メッセージの取得
エラー メッセージを文字列として取得するには、次のコード スニペットを利用します。
cerr << "Error: " << strerror(errno);
マルチスレッドに関する重要な注意事項アプリケーション
マルチスレッド アプリケーションでは、errno はグローバル値です。したがって、別のシステム コールが f.open と errno へのアクセスの間でエラーをトリガーすると、問題が発生する可能性があります。
POSIX システム
POSIX 準拠のシステムでは、errno はスレッドローカルなので、この懸念は解消されます。
e.what() Method
当初、e.what() は、エラー メッセージを取得するためのより C スタイルのアプローチであると考えられていました。ただし、この関数によって返される文字列は実装に依存しており、多くの場合、 G の libstdc には意味のある情報が欠落しています。
以上が「ifstream」がファイルを開けないときに特定のエラー メッセージを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。