Man Linux: Main Page and Category List

NAME

       zzip_disk_mmap, zzip_disk_init, zzip_disk_new, zzip_disk_munmap,
       zzip_disk_open, zzip_disk_close - turn a filehandle into a mmapped zip
       disk archive handle

SYNOPSIS

       #include <zzip/mmapped.h>

       zzip__new__ ZZIP_DISK * zzip_disk_mmap((int fd));

       int zzip_disk_init((ZZIP_DISK * disk, void *buffer,
                           zzip_size_t buflen));

       zzip__new__ ZZIP_DISK * zzip_disk_new((void));

       int zzip_disk_munmap((ZZIP_DISK * disk));

       ZZIP_DISK *zzip__new__ zzip_disk_open((char *filename));

       int zzip_disk_close((ZZIP_DISK * disk));

DESCRIPTION

       The zzip_disk_mmap function uses the given file-descriptor to detect
       the length of the file and calls the system mmap(2) to put it in main
       memory. If it is successful then a newly allocated ZZIP_DISK* is
       returned with disk->buffer pointing to the mapview of the zipdisk
       content.

       The zzip_disk_init function does primary initialization of a
       disk-buffer struct.

       The zzip_disk_new function allocates a new disk-buffer with malloc(3)

       The zzip_disk_munmap function is the inverse of zzip_disk_mmap and
       using the system munmap(2) on the buffer area and free(3) on the
       ZZIP_DISK structure.

       The zzip_disk_open function opens the given archive by name and turn
       the filehandle to zzip_disk_mmap for bringing it to main memory. If it
       can not be mmap(2)´ed then we slurp the whole file into a newly
       malloc(2)´ed memory block. Only if that fails too then we return null.
       Since handling of disk->buffer is ambigous it should not be snatched
       away please.

       The zzip_disk_close function will release all data needed to access a
       (mmapped) zip archive, including any malloc()ed blocks, sharedmem
       mappings and it dumps the handle struct as well.

AUTHOR

       ·   Guido Draheim <guidod@gmx.de>

COPYRIGHT

       Copyright (c) 2003,2004,2006 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