The explain_fopen_or_die() function opens the file whose name
is the string pointed to by pathname and associates a stream with it.
See fopen(3) for more information.
This is a quick and simple way for programs to constitently report file
open errors in a consistent and detailed fahion.
RETURN VALUE
Upon successful completion explain_fopen_or_die returns a
FILE pointer.
If an error occurs, explain_fopen will be called to explain
the error, which will be printed onto stderr, and then the
process will terminate by calling exit(EXIT_FAILURE).