#include <xtend/fast-file.h>
-lxtend
int ffclose(ffile_t *stream)
stream Pointer to an ffile_t object opened by ffopen(3)
ffclose() closes a ffile_t stream opened by ffopen(3). It writes out any
remaining data in the output buffer, deallocates memory allocated by
ffopen(3), and closes the underlying file descriptor opened by open(3).
The ffile_t system is simpler than and several times as fast as
FILE on typical systems. It is intended for processing large files
character-by-character, where low-level block I/O is not convenient, but
FILE I/O causes a bottleneck.
The return status of the underlying close(3) call
char *infilename, *outfilename;
ffile_t *instream, *outstream;
int ch;
if ( (instream = ffopen(infilename, O_RDONLY)) == NULL )
{
fprintf(stderr, "Cannot open %s for reading.n", infilename);
exit(EX_NOINPUT);
}
if ( (outstream = ffopen(outfilename, O_WRONLY|O_CREAT|O_TRUNC)) == NULL )
{
fprintf(stderr, "Cannot open %s for writing.n", outfilename);
exit(EX_NOINPUT);
}
while ( (ch = FFGETC(stream)) != EOF )
FFPUTC(ch, outstream);
ffclose(instream);
ffclose(outstream);
ffopen(3), ffgetc(3), ffputc(3)