91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

在http會話中,經常會遇到gzip壓縮的內容。這部分內容通常是亂碼,需要解壓縮才能看到正常的內容。通常用zlib庫只能對tar.gz文件進行解壓縮。本源碼解決了在內存中直接對gzip內容進行解壓縮,從而對我們感興趣的內容進行修改。 壓縮函數和解壓縮函數放在gzip.c文件里,頭文件是gzip.h,其他則為zlib庫文件。 在應用中,直接調用gzip.c文件里的壓縮函數和解壓縮函數即可。 本人項目中用到的,自己編譯的,實測通過。

資源截圖

代碼片段和文件信息

/*?adler32.c?--?compute?the?Adler-32?checksum?of?a?data?stream
?*?Copyright?(C)?1995-2011?Mark?Adler
?*?For?conditions?of?distribution?and?use?see?copyright?notice?in?zlib.h
?*/

/*?@(#)?$Id$?*/

#include?“zutil.h“

#define?local?static

local?uLong?adler32_combine_?OF((uLong?adler1?uLong?adler2?z_off64_t?len2));

#define?base?65521??????/*?largest?prime?smaller?than?65536?*/
#define?NMAX?5552
/*?NMAX?is?the?largest?n?such?that?255n(n+1)/2?+?(n+1)(base-1)?<=?2^32-1?*/

#define?DO1(bufi)??{adler?+=?(buf)[i];?sum2?+=?adler;}
#define?DO2(bufi)??DO1(bufi);?DO1(bufi+1);
#define?DO4(bufi)??DO2(bufi);?DO2(bufi+2);
#define?DO8(bufi)??DO4(bufi);?DO4(bufi+4);
#define?DO16(buf)???DO8(buf0);?DO8(buf8);

/*?use?NO_DIVIDE?if?your?processor?does?not?do?division?in?hardware?--
???try?it?both?ways?to?see?which?is?faster?*/
#ifdef?NO_DIVIDE
/*?note?that?this?assumes?base?is?65521?where?65536?%?65521?==?15
???(thank?you?to?John?Reiser?for?pointing?this?out)?*/
#??define?CHOP(a)?\
????do?{?\
????????unsigned?long?tmp?=?a?>>?16;?\
????????a?&=?0xffffUL;?\
????????a?+=?(tmp?<????}?while?(0)
#??define?MOD28(a)?\
????do?{?\
????????CHOP(a);?\
????????if?(a?>=?base)?a?-=?base;?\
????}?while?(0)
#??define?MOD(a)?\
????do?{?\
????????CHOP(a);?\
????????MOD28(a);?\
????}?while?(0)
#??define?MOD63(a)?\
????do?{?/*?this?assumes?a?is?not?negative?*/?\
????????z_off64_t?tmp?=?a?>>?32;?\
????????a?&=?0xffffffffL;?\
????????a?+=?(tmp?<????????tmp?=?a?>>?16;?\
????????a?&=?0xffffL;?\
????????a?+=?(tmp?<????????tmp?=?a?>>?16;?\
????????a?&=?0xffffL;?\
????????a?+=?(tmp?<????????if?(a?>=?base)?a?-=?base;?\
????}?while?(0)
#else
#??define?MOD(a)?a?%=?base
#??define?MOD28(a)?a?%=?base
#??define?MOD63(a)?a?%=?base
#endif

/*?=========================================================================?*/
uLong?ZEXPORT?adler32(adler?buf?len)
????uLong?adler;
????const?Bytef?*buf;
????uInt?len;
{
????unsigned?long?sum2;
????unsigned?n;

????/*?split?Adler-32?into?component?sums?*/
????sum2?=?(adler?>>?16)?&?0xffff;
????adler?&=?0xffff;

????/*?in?case?user?likes?doing?a?byte?at?a?time?keep?it?fast?*/
????if?(len?==?1)?{
????????adler?+=?buf[0];
????????if?(adler?>=?base)
????????????adler?-=?base;
????????sum2?+=?adler;
????????if?(sum2?>=?base)
????????????sum2?-=?base;
????????return?adler?|?(sum2?<????}

????/*?initial?Adler-32?value?(deferred?check?for?len?==?1?speed)?*/
????if?(buf?==?Z_NULL)
????????return?1L;

????/*?in?case?short?lengths?are?provided?keep?it?somewhat?fast?*/
????if?(len?????????while?(len--)?{
????????????adler?+=?*buf++;
????????????sum2?+=?adler;
????????}
????????if?(adler?>=?base)
????????????adler?-=?base;
????????MOD28(sum2);????????????/*?only?added?so?many?base‘s?*/
????????return?adler?|?(sum2?<????}

????/*?do?length?NMAX?blocks?--?requires?just?one?modulo?operation?*/
????while?(len?>=?NMAX)?{
????????len?-=?NMAX;
????????n?=?NMAX?/?16;??????????/

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????358??2014-02-21?10:54??readme.txt
?????目錄???????????0??2014-02-21?10:49??zlib\
?????文件????????4968??2011-09-10?16:15??zlib\adler32.c
?????文件????????2529??2012-08-13?00:02??zlib\compress.c
?????文件???????13174??2012-04-29?16:18??zlib\crc32.c
?????文件???????30562??2012-04-29?16:18??zlib\crc32.h
?????文件???????71476??2013-04-28?15:57??zlib\deflate.c
?????文件???????12774??2012-06-02?10:16??zlib\deflate.h
?????文件?????????678??2010-02-13?17:12??zlib\gzclose.c
?????文件????????6552??2013-04-13?18:04??zlib\gzguts.h
?????文件????????2354??2014-02-18?14:23??zlib\gzip.c
?????文件?????????368??2014-02-17?15:58??zlib\gzip.h
?????文件???????16415??2013-03-24?22:47??zlib\gzlib.c
?????文件???????18694??2013-03-24?22:47??zlib\gzread.c
?????文件???????16199??2013-04-13?18:04??zlib\gzwrite.c
?????文件???????22709??2012-08-13?00:02??zlib\infback.c
?????文件???????13455??2013-03-24?22:47??zlib\inffast.c
?????文件?????????427??2010-04-18?21:16??zlib\inffast.h
?????文件????????6332??2011-10-05?20:32??zlib\inffixed.h
?????文件???????53512??2012-08-13?00:02??zlib\inflate.c
?????文件????????6399??2009-12-25?17:32??zlib\inflate.h
?????文件???????13028??2013-04-28?15:57??zlib\inftrees.c
?????文件????????2928??2010-04-18?21:15??zlib\inftrees.h
?????文件???????44255??2012-08-13?00:02??zlib\trees.c
?????文件????????8472??2010-04-18?10:32??zlib\trees.h
?????文件????????2003??2012-08-13?00:02??zlib\uncompr.c
?????文件???????15508??2013-04-28?15:57??zlib\zconf.h
?????文件???????87883??2013-04-28?17:23??zlib\zlib.h
?????文件????????7414??2012-08-13?00:02??zlib\zutil.c
?????文件????????6766??2013-03-24?22:47??zlib\zutil.h

評論

共有 條評論