xgetaline, xfseek, xfopen, xfclose, getaline, fassert - file manipulation
utilities
#include <files.h>
FILE *xfopen(const char *filename, const char *mode);
void xfclose(FILE *fp);
void xfseek(FILE *fp, long offset, int origin);
char *getaline(FILE *fp);
char *xgetaline(FILE *fp);
void fassert(FILE *fp);
These functions are useful for file manipulation. The functions that begin with
x work like the functions without the letter, except if there is an
error, they print an error message and kill the program.
getaline reads a line from the given file. It allocates the
memory for the line with malloc(3), and returns a pointer to the
beginning of the line. If there is an error, it returns NULL. If the
returned value is not NULL, the caller is responsible for freeing the
memory. The newline is removed from the end of the line.
fassert checks that the argument is not NULL, and that (for
a non-NULL argument) the file does not have its error indicator flag set. If
either condition is true, it prints an error message and termiantes the
program. If neither condition is true, it does nothing. This can be used to
add checks that the I/O in a program is going well; however, it is mostly
useful only for small programs, because more serious programs need to handle
the errors more gracefully.
Lars Wirzenius (lars.wirzenius@helsinki.fi)