ffopen(3)

LIBRARY
#include <fcntl.h>
#include <xtend/fast-file.h>
-lxtend

SYNOPSIS

ffile_t *ffopen(const char *filename, int flags)

ARGUMENTS
filename    Absolute or relative path of the file to open
flags       Bit flags passed to open(3)

DESCRIPTION
ffopen() initializes a ffile_t stream, much as fopen() does for a FILE stream. Unlike fopen(), ffopen() takes the same bit mask argument as open() to determine the open mode. See open(3) for details. An optimally sized buffer for the underlying filesystem is allocated, along with additional space for limited ffungetc() operations. 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.

RETURN VALUES
A pointer to a ffile_t object on success, NULL on failure

EXAMPLES
ffile_t *stream;
char    *filename;
// Read only
stream = ffopen(filename, O_RDONLY);
// Overwrite
stream = ffopen(filename, O_WRONLY|O_CREAT|O_TRUNC);
// Append
stream = ffopen(filename, O_WRONLY|O_APPEND);

SEE ALSO
open(3), ffgetc(3), ffputc(3), ffungetc(3), ffclose(3)