In cppreference abort, haben wirWas sind die möglichen Auswirkungen eines unvermeidlichen Aufrufs von abort()?
Destructors von Variablen mit automatischer, Gewinde lokale und statische Speicherdauer werden nicht genannt. Funktionen, die an std :: atexit() übergeben werden, werden ebenfalls nicht aufgerufen. Ob offene Ressourcen wie Dateien geschlossen sind, ist in der Implementierung definiert.
Ich bin etwas verwirrt über die Terminologie und Widerspruch der Abbruch Begriff, mein Programm und aus der Beschreibung dieser Funktion „schließt“, die er sagt, dass Destruktoren und offen möglicherweise Ressourcen genannt werden/nicht geschlossen, beziehungsweise. Also, ist es möglich, dass mein Programm läuft und einige Speicherlecks oder Ressourcen noch geöffnet sind nach einem Aufruf von abort()?
Könnte nicht genau ein Betrogener sein, aber könnte helfen, zu verstehen: http://StackOverflow.com/Questions/397075/what-is-the-difference-between-exit-and-abort – Tas
Das Programm kann nicht beide abbrechen und laufe weiter, das ist ein Widerspruch. Da es nach dem Abbruch nicht existiert, kann es auch keinen Speicherleck geben - das ist zur Laufzeit relevant. Was möglicherweise passieren könnte, ist, dass andere externe Ressourcen nicht ordnungsgemäß bereinigt werden (wie temporäre Dateien usw.) –
@ DanMašek: re "Da es nicht existiert, nachdem es abgebrochen wurde, kann auch kein Speicher ausgelaufen sein", gibt es keine Verbindung von der Prämisse bis zum Abschluss, tut mir leid. Immer noch mit modernen Betriebssystemen für allgemeine Computer wird Speicher im Allgemeinen zurückgewonnen. –