xfclose(3) file

Other Alias

xgetaline, xfseek, xfopen, getaline, fassert


#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 ([email protected])