Name
zzip_entry_fopen, zzip_entry_ffile, zzip_entry_fread, zzip_entry_fclose, zzip_entry_feof — open a file within a zip disk for reading
Synopsis
#include <zzip/fseeko.h>
zzip__new__ ZZIP_ENTRY_FILE*
zzip_entry_fopen( | ) ; | |
zzip__new__ ZZIP_ENTRY_FILE*
zzip_entry_ffile( | ) ; | |
zzip_size_t
zzip_entry_fread( | ) ; | |
Description
The zzip_entry_fopen
function does take an "entry" argument and copies it (or just takes
it over as owner) to a new ZZIP_ENTRY_FILE handle structure. That
structure contains also a zlib buffer for decoding. The zzip_entry_fopen
function does
seek to the file_header of the given "entry" and validates it for the
data buffer following it. We do also prefetch some data from the data
buffer thereby trying to match the disk pagesize for faster access later.
The zzip_entry_fread
will then read in chunks of pagesizes which is
the size of the internal readahead buffer. If an error occurs then null
is returned.
The zzip_entry_ffile
function opens a file found by name, so it does a search into
the zip central directory with zzip_entry_findfile
and whatever
is found first is given to zzip_entry_fopen
The zzip_entry_fread
function reads more bytes into the output buffer specified as
arguments. The return value is null on eof or error, the stdio-like
interface can not distinguish between these so you need to check
with zzip_entry_feof
for the difference.
The zzip_entry_fclose
function releases any zlib decoder info needed for decompression
and dumps the ZZIP_ENTRY_FILE struct then.
The zzip_entry_feof
function allows to distinguish an error from an eof condition.
Actually, if we found an error but we did already reach eof then we
just keep on saying that it was an eof, so the app can just continue.
Copyright
Copyright (c) 2003,2004 Guido Draheim
All rights reserved,
use under the restrictions of the
Lesser GNU General Public License
or alternatively the restrictions
of the Mozilla Public License 1.1