The abort() function causes abnormal program termination unless
the signal SIGABRT is caught and the signal handler does not return.
If the abort() function causes program termination, all open
streams are closed and flushed.
If the SIGABRT signal is blocked or ignored, the abort()
function will still override it.