Выйдите функция-обработчик прерывает нормальное осуществление программы
Этот дефект происходит, когда сам выходной обработчик вызывает другую функцию, которая прерывает ожидаемую последовательность завершения программы и вызывает аварийный выход.
Выйдите обработчики являются функциями, определяемыми для выполнения, когда программа завершает работу. Эти функции сначала зарегистрированы с определенными функциями, такими как atexit
, (WinAPI) _onexit
, или at_quick_exit()
.
Некоторыми функциями, которые могут вызвать аварийные выходы, является exit
, abort
, longjmp
, или (WinAPI) _onexit
.
Если ваш выходной обработчик отключает вашу программу, у вас может быть неопределенное поведение. Аварийное завершение программы означает, что другие выходные обработчики не вызываются. Эти дополнительные выходные обработчики могут сделать дополнительную уборку или другие необходимые шаги завершения.
Во внутренних выходных обработчиках удалите вызовы функций, которые препятствуют тому, чтобы выходной обработчик обычно завершал работу.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: EXIT_ABNORMAL_HANDLER |
Удар: носитель |
ID CWE: 705 |