Является ли exit(1) крашем программы?

194
10 апреля 2019, 02:30

Можно ли вызов exit(1); назвать падением приложения? При условии вызова exit(1); в любое время выполнения?

Answer 1

Это не философский вопрос, предназначение этой функции четко документировано. Ее вызов приводит к (частичной) подчистке ресурсов, вызове обработчиков, установленных через atexit и возврату в систему. Причем передача кода 0 или EXIT_SUCCESS говорит об успешном выходе, а EXIT_FAILURE о неуспешном. Если "произвольно написать в любом месте", то наверное можно и краш получить, но это не из-за функции, а из-за ее неправильного использования (т.е. вызывать ее надо тогда, когда подчистка и обработчики нормально сработают).

Крашем является вызов abort(), предназначение которой - немедленное аварийное завершение программы. На многих системах это по-умолчанию приводит к генерации дампа и т.д.

Answer 2

В теории выполнение команды exit(1); в любом месте программы закончит выполнение данной программы на том моменте на котором написана команда. По моему мнению это нельзя назвать крашем.

READ ALSO
Неправильно работает код [закрыт]

Неправильно работает код [закрыт]

Вся база не выводится, выводятся только вторые введенные значения

192
Сокращение строки в выводе

Сокращение строки в выводе

Пытаюсь изменить символ в строке на \0, чтобы выводить её не полностью (тк

162
Ошибка инициализации из-за метки case [дубликат]

Ошибка инициализации из-за метки case [дубликат]

На данный вопрос уже ответили:

242
Как вызвать одно окно из слота другого Qt

Как вызвать одно окно из слота другого Qt

q2 главное стартовое окноУ него есть кнопка QButton pushButton

188