Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

zzip_open_shared_io(3) [debian man page]

ZZIP_OPEN(3)						       zziplib Function List						      ZZIP_OPEN(3)

NAME
zzip_open, zzip_open_ext_io, zzip_open_shared_io - ... SYNOPSIS
#include <zzip/lib.h> ZZIP_FILE * zzip_open((zzip_char_t * filename, int o_flags)); ZZIP_FILE * zzip_open_ext_io((zzip_char_t * filename, int o_flags, int o_modes, zzip_strings_t * ext, zzip_plugin_io_t io)); ZZIP_FILE * zzip_open_shared_io((ZZIP_FILE * stream, zzip_char_t * filename, int o_flags, int o_modes, zzip_strings_t * ext, zzip_plugin_io_t io)); DESCRIPTION
The zzip_open_ext_io function uses explicit ext and io instead of the internal defaults, setting them to zero is equivalent to zzip_open note that the two flag types have been split into an o_flags (for fcntl-like openflags) and o_modes where the latter shall carry the zzip_flags and possibly accessmodes for unix filesystems. Since this version of zziplib can not write zipfiles, it is not yet used for anything else than zzip-specific modeflags. The zzip_open_ext_io function returns a new zzip-handle (use zzip_close to return it). On error the zzip_open_ext_io function will return null setting errno(3). The zzip_open_shared_io function takes an extra stream argument - if a handle has been then ext/io can be left null and the new stream handle will pick up the ext/io. This should be used only in specific environment however since zzip_file_real does not store any ext-sequence. The benefit for the zzip_open_shared_io function comes in when the old file handle was openened from a file within a zip archive. When the new file is in the same zip archive then the internal zzip_dir structures will be shared. It is even quicker, as no check needs to be done anymore trying to guess the zip archive place in the filesystem, here we just check whether the zip archive's filepath is a prefix part of the filename to be opened. Note that the zzip_open_shared_io function is also used by zzip_freopen that will unshare the old handle, thereby possibly closing the handle. The zzip_open_shared_io function returns a new zzip-handle (use zzip_close to return it). On error the zzip_open_shared_io function will return null setting errno(3). AUTHOR
o Guido Draheim <guidod@gmx.de> Tomi Ollila <Tomi.Ollila@iki.fi> COPYRIGHT
Copyright (c) 1999,2000,2001,2002,2003 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 zziplib 0.13.56 ZZIP_OPEN(3)

Check Out this Related Man Page

ZZIP_FOPEN(3)						       zziplib Function List						     ZZIP_FOPEN(3)

NAME
zzip_fopen, zzip_freopen - ... SYNOPSIS
#include <zzip/lib.h> ZZIP_FILE * zzip_fopen((zzip_char_t * filename, zzip_char_t * mode)); ZZIP_FILE * zzip_freopen((zzip_char_t * filename, zzip_char_t * mode, ZZIP_FILE * stream)); DESCRIPTION
The zzip_fopen function will fopen(3) a real/zipped file. It has some magic functionality builtin - it will first try to open the given filename as a normal file. If it does not exist, the given path to the filename (if any) is split into its directory-part and the file-part. A ".zip" extension is then added to the directory-part to create the name of a zip-archive. That zip-archive (if it exists) is being searched for the file-part, and if found a zzip-handle is returned. Note that if the file is found in the normal fs-directory the returned structure is mostly empty and the zzip_read call will use the libc read to obtain data. Otherwise a zzip_file_open is performed and any error mapped to errno(3). unlike the posix-wrapper zzip_open the mode-argument is a string which allows for more freedom to support the extra zzip modes called ZZIP_CASEINSENSITIVE and ZZIP_IGNOREPATH. Currently, this zzip_fopen call will convert the following characters in the mode-string into their corrsponding mode-bits: o "r" : O_RDONLY : read-only o "b" : O_BINARY : binary (win32 specific) o "f" : O_NOCTTY : no char device (unix) o "i" : ZZIP_CASELESS : inside zip file o "*" : ZZIP_NOPATHS : inside zip file only all other modes will be ignored for zip-contained entries but they are transferred for compatibility and portability, including these extra sugar bits: o "x" : O_EXCL : fail if file did exist o "s" : O_SYNC : synchronized access o "n" : O_NONBLOCK : nonblocking access o "z#" : compression level : for zlib o "g#" : group access : unix access bits o "u#" : owner access : unix access bits o "o#" : world access : unix access bits ... the access bits are in traditional unix bit format with 7 = read/write/execute, 6 = read/write, 4 = read-only. The default access mode is 0664, and the compression level is ignored since the lib can not yet write zip files, otherwise it would be the initialisation value for the zlib deflateInit where 0 = no-compression, 1 = best-speed, 9 = best-compression. The zzip_fopen function returns a new zzip-handle (use zzip_close to return it). On error the zzip_fopen function will return null setting errno(3). The zzip_freopen function receives an additional argument pointing to a ZZIP_FILE* being already in use. If this extra argument is null then the zzip_freopen function is identical with calling zzip_fopen Per default, the old file stream is closed and only the internal structures associated with it are kept. These internal structures may be reused for the return value, and this is a lot quicker when the filename matches a zipped file that is incidently in the very same zip arch as the old filename wrapped in the stream struct. That's simply because the zip arch's central directory does not need to be read again. As an extension for the zzip_freopen function, if the mode-string contains a "q" then the old stream is not closed but left untouched, instead it is only given as a hint that a new file handle may share/copy the zip arch structures of the old file handle if that is possible, i.e when they are in the same zip arch. The zzip_freopen function returns a new zzip-handle (use zzip_close to return it). On error the zzip_freopen function will return null setting errno(3). AUTHOR
o Guido Draheim <guidod@gmx.de> Tomi Ollila <Tomi.Ollila@iki.fi> COPYRIGHT
Copyright (c) 1999,2000,2001,2002,2003 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 SEE ALSO
fopen(2) zziplib 0.13.56 ZZIP_FOPEN(3)
Man Page