混淆使用libbz2功能?任何人都可以解释我是对还是错?

时间:2015-10-19 14:23:46

标签: c linux zip compression bzip2

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);

1 个答案:

答案 0 :(得分:0)

如果有任何数据被写入,# ignore everything to start * # except these !**/ !*.xml !.gitignore # then ignore these builds/ plugins/ war/ lastStable/ lastSuccessful/ 的值将会改变,就像next_out会在读取任何数据时更改一样。换句话说,您尝试在压缩数据结束后立即从解压缩数据。