【发布时间】:2015-10-19 14:23:45
【问题描述】:
main()
{
char source[1560]="mrinalsaikiaismynamenwhatnotiamgreatajajlksjkkslskldklkdklkdlwhgygehehhejhjejdjjjjjljlkkjjjjjjaasasaaasjsjssjskjkjalsjalksjajslkjckljdjfjfjfjffjkllkjldkjlskjlkjkljklklkalksklksjkjskjksjlksjjskjklsjsjskjkjkjjjsjkjjjjjbhbjbbjbjbssjbsjsbsjssjssjhjdjdjjkkmrinalsaikiaismynamenwhatnotiamgreatajajlksjkkslskldklkdklkdlwhgygehehhejhjejdjjjjjljlkkjjjjjjaasasaaasjsjssjskjkjalsjalksjajslkjckljdjfjfjfjffjkllkjldkjlskjlkjkljklklkalksklksjkjskjksjlksjjskjklsjsjskjkjkjjjsjkjjjjjbhbjbbjbjbssjbsjsbsjssjssjhjdjdjjkk";
int ret ;
bz_stream comp_stream;
comp_stream.next_in = source;
comp_stream.avail_in =strlen(source);
comp_stream.avail_out = 502 ;
char arr[comp_stream.avail_out];
comp_stream.next_out =arr;
comp_stream.opaque = NULL;
comp_stream.bzfree = NULL;
comp_stream.bzalloc = NULL;
comp_stream.state = NULL;
BZ2_bzCompressInit(&comp_stream,1,0,0);
printf("length before compression = %d \n",strlen(source));
printf(" string original is %s \n",(comp_stream.next_in));
if(BZ2_bzCompress(&comp_stream, BZ_FINISH) == BZ_STREAM_END)
{
printf("copressed Data\n");
printf("compressed size length = %d \n",(502 - comp_stream.avail_out));
}
printf("compressed string = %s \n",comp_stream.next_out);
Decompress(comp_stream.next_out,(502 - comp_stream.avail_out));
BZ2_bzCompressEnd(&comp_stream);
【问题讨论】:
-
有什么问题?您得到的输出是否与您的预期不同?如果是这样,请说明您的预期输出和实际得到的输出
-
是的,我得到了输出,但我不知道它是对还是错,但是当我解压缩该字符串时,会出现 BZ_DATA_ERROR_MAGIC 错误。
-
您成为这里的会员已经足够长的时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。你也应该有时间read about how to ask good questions。
-
对不起,我写这段代码很匆忙,你能解释一下如何使用 bzip2 低级 api 进行压缩......
标签: c linux zip compression bzip2