C++: Может ли программа возвращать в ОС не ноль, если в функции main явно стоит return 0?
Может ли это быть связано с процессами, происходящими после выхода из
функции (разрущение статических объектов, вызов callback'ов atexit'а, etc...)
Пример кода
....
....
int main()
{
....
....
try
{
mainObj.Run();
}
catch(const MyAppTerminate& e)
{
// Это сообщение я в логе вижу ВСЕГДА!!!
logg("Finished with message '%s'", e.what().c_str());
return 0;
}
}
Но вот в систему возвращается что-то типа -1073741819.
Не всегда конечно, но бывает.
Если сразу выходить (без полезной работы), то всегда 0 возвращется.
Скорее всего в программе у меня есть баг, но хотелось бы получить
ответ на первоначальный вопрос.