@ Натан, я не могу найти функцию, которая будет возвращать код завершения текущего запущенного процесса. Я ожидаю, что он все еще не установлен в момент, когда вызывается atexit()
. Под этим я подразумеваю, что среда выполнения знает, что это такое, но, вероятно, не сообщила об этом ОС. Впрочем, это всего лишь предположение.
Похоже, вам нужно будет либо использовать on_exit()
, либо структурировать свою программу так, чтобы код выхода не имел значения. Было бы неразумно, если бы последний оператор в вашей основной функции перевернул глобальную переменную exited_cleanly
в true. В функции, которую вы регистрируете с помощью atexit()
, вы можете проверить эту переменную, чтобы определить выход программы. Это даст вам только два состояния, но я ожидаю, что этого будет достаточно для большинства потребностей. Вы также можете расширить этот тип схемы для поддержки большего количества состояний выхода при необходимости.