FastFile
--------
FastFile provides a way to create a very fast way to access large numbers
of files.
You use FFCREATE.EXE to create a single flat file. Just run FFCREATE in
the directory that contains all of the files you wish to access. A file
will be created at the root (RESULT.FF) that is the FastFile. (you can
specify a filename on the command line to override the default of RESULT.FF;
if you do so, make sure that the result file is NOT generated in the
current directory).
Once you have created your FastFile, you can use the FastFile routines to
access it:
BOOL FastFileInit( LPSTR fname, int max_handles ):
Call to initialize access to a FastFile.
fname : name of FastFile
max_handles: maximum number of file handles you want to have open at the
same time.
returns TRUE if succeeds, FALSE otherwise
void FastFileFini( void ):
Call when you are finished accessing your FastFile
HFASTFILE FastFileOpen( LPSTR name ):
Call to open an individual file in a FastFile (read-only access is supported)
name: name if individual file
returns a handle, or NULL if fail
BOOL FastFileClose( HFASTFILE hff ):
Call to close an individual file
hff: handle to an individual file
returns TRUE if succeeded, FALSE otherwise
BOOL FastFileRead( HFASTFILE hff, LPVOID ptr, int size )
Call to read from an individual file
hff: handle to an individual file
ptr: buffer to copy data
size: size of data to copy
returns TRUE if succeeded, FALSE otherwise
BOOL FastFileSeek( HFASTFILE hff, int off, int type )
Call to seek to an offset in an individual file
hff: handle to an individual file
off: offset to seek to
type: seek type: SEEK_SET (from start), SEEK_CUR (from current pos),
or SEEK_END (from end)
returns TRUE if succeeded, FALSE otherwise
long FastFileTell( HFASTFILE hff )
Call to get the current position in an individual file
hff: handle to an individual file
returns current position if succeeded, -1 otherwise