unzip.cpp.600

#define Z_BEST_COMPRESSION       9 #define Z_DEFAULT_COMPRESSION  (-1)

// compression strategy; see deflateInit2() for details #define Z_FILTERED            1 #define Z_HUFFMAN_ONLY        2 #define Z_DEFAULT_STRATEGY    0

// Possible values of the data_type field #define Z_BINARY   0 #define Z_ASCII    1 #define Z_UNKNOWN  2

// The deflate compression method (the only one supported in this version) #define Z_DEFLATED   8

// for initializing zalloc, zfree, opaque #define Z_NULL  0

// case sensitivity when searching for filenames #define CASE_SENSITIVE 1 #define CASE_INSENSITIVE 2

// Return codes for the compression/decompression functions. Negative // values are errors, positive values are used for special but normal events. #define Z_OK            0 #define Z_STREAM_END    1 #define Z_NEED_DICT     2 #define Z_ERRNO        (-1) #define Z_STREAM_ERROR (-2) #define Z_DATA_ERROR   (-3) #define Z_MEM_ERROR    (-4) #define Z_BUF_ERROR    (-5) #define Z_VERSION_ERROR (-6)

// Basic data types typedef unsigned char  Byte;  // 8 bits typedef unsigned int   uInt;  // 16 bits or more typedef unsigned long  uLong; // 32 bits or more typedef void *voidpf; typedef void     *voidp; typedef long z_off_t;

typedef voidpf (*alloc_func) (voidpf opaque, uInt items, uInt size); typedef void   (*free_func)  (voidpf opaque, voidpf address);

struct internal_state;

typedef struct z_stream_s {     Byte    *next_in;  // next input byte     uInt     avail_in;  // number of bytes available at next_in     uLong    total_in;  // total nb of input bytes read so far

Byte    *next_out; // next output byte should be put there     uInt     avail_out; // remaining free space at next_out     uLong    total_out; // total nb of bytes output so far

char     *msg;      // last error message, NULL if no error     struct internal_state *state; // not visible by applications

alloc_func zalloc;  // used to allocate the internal state     free_func  zfree;   // used to free the internal state     voidpf     opaque;  // private data object passed to zalloc and zfree

int     data_type;  // best guess about the data type: ascii or binary     uLong   adler;      // adler32 value of the uncompressed data     uLong   reserved;   // reserved for future use } z_stream;

typedef z_stream *z_streamp;

//   The application must update next_in and avail_in when avail_in has //   dropped to zero. It must update next_out and avail_out when avail_out //   has dropped to zero. The application must initialize zalloc, zfree and //   opaque before calling the init function. All other fields are set by the //   compression library and must not be updated by the application. // //   The opaque value provided by the application will be passed as the first //   parameter for calls of zalloc and zfree. This can be useful for custom //   memory management. The compression library attaches no meaning to the //   opaque value. // //   zalloc must return Z_NULL if there is not enough memory for the object. //   If zlib is used in a multi-threaded application, zalloc and zfree must be //   thread safe. // //   The fields total_in and total_out can be used for statistics or //   progress reports. After compression, total_in holds the total size of //   the uncompressed data and may be saved for use in the decompressor //   (particularly if the decompressor wants to decompress everything in //   a single step). //

// basic functions

const char *zlibVersion (); // The application can compare zlibVersion and ZLIB_VERSION for consistency. // If the first character differs, the library code actually used is // not compatible with the zlib.h header file used by the application. // This check is automatically made by inflateInit.

int inflate (z_streamp strm, int flush); // //    inflate decompresses as much data as possible, and stops when the input //  buffer becomes empty or the output buffer becomes full. It may some //  introduce some output latency (reading input without producing any output) //  except when forced to flush. // //  The detailed semantics are as follows. inflate performs one or both of the //  following actions: // //  - Decompress more input starting at next_in and update next_in and avail_in //    accordingly. If not all input can be processed (because there is not //    enough room in the output buffer), next_in is updated and processing //    will resume at this point for the next call of inflate(). // //  - Provide more output starting at next_out and update next_out and avail_out //    accordingly.  inflate() provides as much output as possible, until there //    is no more input data or no more space in the output buffer (see below //    about the flush parameter). // //  Before the call of inflate(), the application should ensure that at least //  one of the actions is possible, by providing more input and/or consuming //  more output, and updating the next_* and avail_* values accordingly. //  The application can consume the uncompressed output when it wants, for //  example when the output buffer is full (avail_out == 0), or after each //  call of inflate(). If inflate returns Z_OK and with zero avail_out, it //  must be called again after making room in the output buffer because there //  might be more output pending. // //    If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much //  output as possible to the output buffer. The flushing behavior of inflate is //  not specified for values of the flush parameter other than Z_SYNC_FLUSH //  and Z_FINISH, but the current implementation actually flushes as much output //  as possible anyway. // //    inflate() should normally be called until it returns Z_STREAM_END or an //  error. However if all decompression is to be performed in a single step //  (a single call of inflate), the parameter flush should be set to //  Z_FINISH. In this case all pending input is processed and all pending //  output is flushed; avail_out must be large enough to hold all the //  uncompressed data. (The size of the uncompressed data may have been saved //  by the compressor for this purpose.) The next operation on this stream must //  be inflateEnd to deallocate the decompression state. The use of Z_FINISH //  is never required, but can be used to inform inflate that a faster routine //  may be used for the single inflate() call. // //     If a preset dictionary is needed at this point (see inflateSetDictionary //  below), inflate sets strm-adler to the adler32 checksum of the //  dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise //  it sets strm->adler to the adler32 checksum of all output produced //  so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or //  an error code as described below. At the end of the stream, inflate() //  checks that its computed adler32 checksum is equal to that saved by the //  compressor and returns Z_STREAM_END only if the checksum is correct. // //    inflate() returns Z_OK if some progress has been made (more input processed //  or more output produced), Z_STREAM_END if the end of the compressed data has //  been reached and all uncompressed output has been produced, Z_NEED_DICT if a //  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was //  corrupted (input stream not conforming to the zlib format or incorrect //  adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent //  (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not //  enough memory, Z_BUF_ERROR if no progress is possible or if there was not //  enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR //  case, the application may then call inflateSync to look for a good //  compression block. //

int inflateEnd (z_streamp strm); // //     All dynamically allocated data structures for this stream are freed. //   This function discards any unprocessed input and does not flush any //   pending output. // //     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state //   was inconsistent. In the error case, msg may be set but then points to a //   static string (which must not be deallocated).

// Advanced functions

//  The following functions are needed only in some special applications.

int inflateSetDictionary (z_streamp strm,                                              const Byte *dictionary,                                              uInt  dictLength); // //     Initializes the decompression dictionary from the given uncompressed byte //   sequence. This function must be called immediately after a call of inflate //   if this call returned Z_NEED_DICT. The dictionary chosen by the compressor //   can be determined from the Adler32 value returned by this call of //   inflate. The compressor and decompressor must use exactly the same //   dictionary. // //     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a //   parameter is invalid (such as NULL dictionary) or the stream state is //   inconsistent, Z_DATA_ERROR if the given dictionary doesn‘t match the //   expected one (incorrect Adler32 value). inflateSetDictionary does not //   perform any decompression: this will be done by subsequent calls of //   inflate().

int inflateSync (z_streamp strm); // //    Skips invalid compressed data until a full flush point can be found, or until all //  available input is skipped. No output is provided. // //    inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR //  if no more input was provided, Z_DATA_ERROR if no flush point has been found, //  or Z_STREAM_ERROR if the stream structure was inconsistent. In the success //  case, the application may save the current current value of total_in which //  indicates where valid compressed data was found. In the error case, the //  application may repeatedly call inflateSync, providing more input each time, //  until success or end of the input data.

int inflateReset (z_streamp strm); //     This function is equivalent to inflateEnd followed by inflateInit, //   but does not free and reallocate all the internal decompression state. //   The stream will keep attributes that may have been set by inflateInit2. // //      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source //   stream state was inconsistent (such as zalloc or state being NULL). //

// checksum functions // These functions are not related to compression but are exported // anyway because they might be useful in applications using the // compression library.

uLong adler32 (uLong adler, const Byte *buf, uInt len); //     Update a running Adler-32 checksum with the bytes buf[0..len-1] and //   return the updated checksum. If buf is NULL, this function returns //   the required initial value for the checksum. //   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed //   much faster. Usage example: // //     uLong adler = adler32(0L, Z_NULL, 0); // //     while (read_buffer(buffer, length) != EOF) { //       adler = adler32(adler, buffer, length); //     } //     if (adler != original_adler) error();

uLong ucrc32   (uLong crc, const Byte *buf, uInt len); //     Update a running crc with the bytes buf[0..len-1] and return the updated //   crc. If buf is NULL, this function returns the required initial value //   for the crc. Pre- and post-conditioning (one‘s complement) is performed //   within this function so it shouldn‘t be done by the application. //   Usage example: // //     uLong crc = crc32(0L, Z_NULL, 0); // //     while (read_buffer(buffer, length) != EOF) { //       crc = crc32(crc, buffer, length); //     } //     if (crc != original_crc) error();

const char   *zError           (int err); int           inflateSyncPoint (z_streamp z); const uLong *get_crc_table    (void);

typedef unsigned char  uch; typedef uch uchf; typedef unsigned short ush; typedef ush ushf; typedef unsigned long  ulg;

时间: 2024-10-21 00:15:36

unzip.cpp.600的相关文章

unzip.cpp.300

#include "stdafx.h" #ifdef ZIP_STD #include <stdio.h> #include <string.h> #include <malloc.h> #include <time.h> #ifdef _MSC_VER #include <sys/utime.h> // microsoft puts it here #else #include <utime.h> #endif

unzip.h.227

#ifndef _unzip_H #define _unzip_H // #ifdef ZIP_STD #include <time.h> #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name #ifndef MAX_PATH #define MAX_PATH 1024 #endif typedef unsigned long DWORD; typedef char

Makefile 自动生成头文件的依赖关系 .

最近在看一本书<Windows游戏编程大师技巧> (Tricks of Windows Game Programming Gurus). 第一章给出了一个打砖块小游戏的示例程序. 包括三个文件: blackbox.h, blackbox.cpp和freakout.cpp (600行代码, 对于Windows C++程序来说还好, 没有让我freak out…). blackbox.cpp封装了部分DirectDraw, 提供了一些更傻瓜化的初始化DirectDraw, 画点, 画方框的工具函数

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境 本篇博客来给大家介绍如何在Windows下搭建Cocos2d-x Android开发环境,笔者前面写了几篇博客都是针对如何对Android项目进行交叉编译的,对应了Cocos2d-x 2.2.3版本和Cocos2d-x 3.0版本,其实3.0版本跟3.1.1是一样的,只是笔者介绍如何不适用命令行对Cocos2d-x Android项目进行交叉编译,而直接在Eclipse进行交叉编译. 前面几篇博客,如果有需要比较差别的

android 电视core dump分析

测试测了个bug, 操作dtmb 频道的时候系统重启, 由于生成了core dump文件,所以先看下core dump. 一 . 要想调试core dump,首先要生成core dump, 一般只有c/c++编译生成的二进制程序崩溃了才会生成core dump, 一般需要以下设置. 1) 运行ulimit -c  unlimited ----> 要置成unlimited, 这个代表core dump文件大小,默认是0, 即不生成core dump 2)设置core dump文件路径以及文件名格式

【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识

递归汉诺塔 双层递归 #include <iostream> void han(int n, char A, char B, char C) { static int num = 1; std::cout << "第" << num << "次"; num++; if (n<1) { return; } else { han(n - 1, A, C, B); std::cout << A <&l

cl.exe命令方式编译cpp

直接在命令行窗口调用cl编译cpp文件 往往不能通过. 主要原因是一些头文件及可执行文件未在环境变量中设置.可以通过执行VSVAR32.BAT批处理文件来设置环境变量,注意vs2005跟2008的放置位置可能不同,如果不在cl.exe当前路径下,可以去/Common7/Tools目录下寻找. 批处理文件中主要是set命令临时配置的环境变量,所以开机之后需要重新运行该bat文件才能执行cl命令. 另附cl命令使用说明 CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32

SerialPort.h SerialPort.cpp

SerialPort.h 1 #ifndef __SERIALPORT_H__ 2 #define __SERIALPORT_H__ 3 4 #define WM_COMM_BREAK_DETECTED WM_USER+1 // A break was detected on input. 5 #define WM_COMM_CTS_DETECTED WM_USER+2 // The CTS (clear-to-send) signal changed state. 6 #define WM_C

在hp-ux下安装oracle 数据库软件时unzip的问题

当你第一次在hp-ux下安装oracle数据库时,会遇到上传到hp-ux中的Oracle database 软件介质(*.zip格式)无法解压,原因是没有unzip这个可执行程序. 此时,可以到https://updates.oracle.com/unzips/unzips.html 这个网址去下载hp-ux下的 unizp 介质即可. 现在将此文章全文摘录在下面: UnZip Utilities Download Patches downloaded from Oracle are in th