compress / uncompresscompresscompsize = ~; // 圧縮後のサイズより大きな値 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 } uncompressorigsize = ~; // 伸張後のサイズより大きな値 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(予定) 参考
関連 |