Существует question об использовании exit
в С++. В ответе говорится, что это не очень хорошая идея в основном из-за RAII, например, если exit
вызывается где-то в коде, деструкторы объектов не будут вызываться, следовательно, если, например, деструктор предназначен для записи данных в файл, это не будет, потому что деструктор не был вызван.
Мне было интересно, как эта ситуация на C. Схожие проблемы применимы и в C? Я думал, так как в C мы не используем конструкторы/деструкторы, ситуация может быть различной в C. Так что нормально использовать exit
в C?
Я видел такие функции, как, например, ниже, которые я считаю правдоподобными в некоторых случаях, но интересовался, если у нас есть подобные проблемы в C с использованием exit
, как описано выше с С++? (что сделало бы использование таких функций, как ниже, не очень хорошая идея.).
void die(const char *message)
{
if(errno) {
perror(message);
} else {
printf("ERROR: %s\n", message);
}
exit(1);
}