The explain_ferror_or_die function is used to call the ferror(3) system call. On failure an explanation
will be printed to stderr, obtained from explain_ferror(3), and then the process terminates by calling
exit(EXIT_FAILURE).
This function is intended to be used in a fashion similar to the following example:
explain_ferror_or_die(fp);
It is essential that this function cal be placed as close as possible to the I/O code that has caused the
problem, otherwise intervening code could have altered the errno global variable.
fp The fp, exactly as to be passed to the ferror(3) system call.
Returns:
This function only returns on success. On failure, prints an explanation and exits.