int solv_zchunk_close(struct solv_zchunk *zck) { if (zck->data_chk) solv_chksum_free(zck->data_chk, 0); if (zck->ddict) ZSTD_freeDDict(zck->ddict); if (zck->dctx) ZSTD_freeDCtx(zck->dctx); solv_free(zck->hdr); solv_free(zck->buf); if (zck->fp) fclose(zck->fp); solv_free(zck); return 0; }
int main(int argc, const char** argv) { const char* const exeName = argv[0]; if (argc<3) { printf("wrong arguments\n"); printf("usage:\n"); printf("%s [FILES] dictionary\n", exeName); return 1; } /* load dictionary only once */ const char* const dictName = argv[argc-1]; ZSTD_DDict* const dictPtr = createDict_orDie(dictName); int u; for (u=1; u<argc-1; u++) decompress(argv[u], dictPtr); ZSTD_freeDDict(dictPtr); printf("All %u files correctly decoded (in memory) \n", argc-2); return 0; }