ifstream を使用してファイルを開こうとして失敗した場合、失敗の背後にある理由を取得することが望ましい場合がよくあります。その方法は次のとおりです。
システム コールが失敗するたびに、グローバル errno 値が更新されます。この値は、エラーに関する詳細情報を取得するために使用できます。
ifstream f; f.open(fileName); if (f.fail()) { cerr << "Error: " << strerror(errno); }
strerror はエラー メッセージを文字列として提供することに注意してください。
Ifマルチスレッド アプリケーションでこのメソッドを使用する場合、他のシステム コールが f.open と errno の間の errno を変更する可能性を考慮することが重要です。 retrieval.
POSIX システムでは、errno はスレッドローカルです。つまり、あるスレッドで加えられた変更は他のスレッドに影響を与えません。これは、必ずしもすべてのシステムに当てはまるわけではありません。
最初は、e.what() の方がより慣用的なアプローチであるように思えるかもしれません。 C.ただし、この関数によって返される文字列は実装固有であり、失敗に関する有用な情報が常に提供されるとは限りません。
以上が「ifstream」のオープンに失敗した場合にエラー メッセージを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。