请问谁用过zlib,请说说他的使用方法。详细点。谢谢!

解决方案 »

  1.   

    这是我用过的两个函数,欢迎讨论。
    /*
         The following utility functions are implemented on top of the
       basic stream-oriented functions. To simplify the interface, some
       default options are assumed (compression level and memory usage,
       standard memory allocation functions). The source code of these
       utility functions can easily be modified if you need special options.
    */ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen,
                                     const Bytef *source, uLong sourceLen));
    /*
         Compresses the source buffer into the destination buffer.  sourceLen is
       the byte length of the source buffer. Upon entry, destLen is the total
       size of the destination buffer, which must be at least 0.1% larger than
       sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
       compressed buffer.
         This function can be used to compress a whole file at once if the
       input file is mmap'ed.
         compress returns Z_OK if success, Z_MEM_ERROR if there was not
       enough memory, Z_BUF_ERROR if there was not enough room in the output
       buffer.
    */ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,
                                       const Bytef *source, uLong sourceLen));
    /*
         Decompresses the source buffer into the destination buffer.  sourceLen is
       the byte length of the source buffer. Upon entry, destLen is the total
       size of the destination buffer, which must be large enough to hold the
       entire uncompressed data. (The size of the uncompressed data must have
       been saved previously by the compressor and transmitted to the decompressor
       by some mechanism outside the scope of this compression library.)
       Upon exit, destLen is the actual size of the compressed buffer.
         This function can be used to decompress a whole file at once if the
       input file is mmap'ed.     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
       enough memory, Z_BUF_ERROR if there was not enough room in the output
       buffer, or Z_DATA_ERROR if the input data was corrupted.
    */