В cppreference abort, мы имеемКаковы возможные последствия неизбежного вызова abort()?
деструкторов переменных с автоматическим, нитками локальные и статические длительности хранения не называется. Функции, переданные в std :: atexit(), также не вызываются. Независимо от того, закрыты ли открытые ресурсы, такие как файлы, определена реализация.
Я немного запутался о терминологии и противоречивости ABORt термин, который «закрывает» свою программу и из описания той функции, которую он говорит, что разрушители и открытые ресурсы, возможно, не называются/закрыты, соответственно. Итак, возможно ли, что моя программа все еще работает, и у нее есть некоторая утечка памяти или ресурсы, которые все еще открыты после вызова функции abort()?
Не может быть точным обманом, но может помочь понять: http://stackoverflow.com/questions/397075/what-is-the-difference-between-exit-and-abort – Tas
Программа не может оба прерывать и остаются бегущими, это противоречие. Поскольку он не существует после его прерывания, он также не может утечки памяти - это актуально во время выполнения. Возможно, что другие внешние ресурсы не очищаются должным образом (например, временные файлы и т. Д.). –
@ DanMašek: re «Так как он не существует после его прерывания, он также не может пропускать память», нет связи от предпосылки к заключению, извините. Все еще с современными ОС для общих компьютеров, память, как правило, исправлена. –