- http://www.zlib.net/
--  http://www.zlib.net/zlib_tech.html

- http://oku.edu.mie-u.ac.jp/~okumura/compression/zlib.html

* compress / uncompress [#x10ab7d2]
** compress [#compress]

 compsize = ~; // 圧縮後のサイズより大きな値
 compbuff = malloc(compsize);
 int result = compress(compbuff, &compsize, origbuff, origsize);
 if (result != Z_OK) {
     if (result == Z_MEM_ERROR) {
         fprintf(stderr, "compress: Z_MEM_ERROR: can't malloc\n");
     } else if (result == Z_BUF_ERROR) {
         fprintf(stderr, "compress: Z_BUF_ERROR: not enough buff size\n");
     }
     return 1; // FAILURE
 }

** uncompress [#uncompress]

 origsize = ~;  // 伸張後のサイズより大きな値
 origbuff = malloc(origsize);
 int result = uncompress(origbuff, &origsize, compbuff, compsize);
 if (result != Z_OK) {
     if (result == Z_MEM_ERROR) {
         fprintf(stderr, "uncompress: Z_MEM_ERROR: can't malloc\n");
     } else if (result == Z_BUF_ERROR) {
         fprintf(stderr, "uncompress: Z_BUF_ERROR: not enough buff size\n");
     }
     return 1; // FAILURE
 }

* inflate / defrate [#q681d972]

(予定)

Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes