Beim Versuch, eine Datei mit ifstream zu öffnen, kann die Methode open aus verschiedenen Gründen fehlschlagen. So erhalten Sie die spezifische Fehlermeldung, die mit dem Fehler verknüpft ist:
Fehlercodes verstehen
Jeder Systemaufruf, der fehlschlägt, aktualisiert den Wert „errno“. Dieser Wert liefert Informationen über die Ursache des Fehlers.
Fehlermeldung abrufen
Um die Fehlermeldung als Zeichenfolge zu erhalten, verwenden Sie den folgenden Codeausschnitt:
cerr << "Error: " << strerror(errno);
Wichtiger Hinweis für Multithread-Anwendungen
In Bei Multithread-Anwendungen ist errno ein globaler Wert. Wenn also ein anderer Systemaufruf einen Fehler zwischen f.open und dem Zugriff auf errno auslöst, können Probleme auftreten.
POSIX-Systeme
Auf POSIX-kompatiblen Systemen ist errno der Fall Thread-lokal, wodurch dieses Problem beseitigt wird.
e.what() Methode
Anfangs wurde e.what() als eher C-ähnlicher Ansatz zum Erhalten der Fehlermeldung angesehen. Allerdings ist die von dieser Funktion zurückgegebene Zeichenfolge von der Implementierung abhängig und es fehlen häufig aussagekräftige Informationen in libstdc von G.
Das obige ist der detaillierte Inhalt vonWie kann ich die spezifische Fehlermeldung erhalten, wenn ein „ifstream' eine Datei nicht öffnen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!