В "Linux Programmer's Manual" написано:
Функция abort() вызывает ненормальное завершение программы.
Функция exit(status) вызывает нормальное завершение программы. По стандарту C status может быть константой EXIT_SUCCESS или EXIT_FAILURE, которые означают успешное и неуспешное завершение программы.
Я не понимаю? в чём принципиальная разница между abort() и exit(EXIT_FAILURE), ведь обе функции сообщают ОС о неудачном завершении работы программы?