2016-03-02 361 views
0

所以我有一個問題,我似乎無法找到答案。的zlib壓縮/解壓縮Linux編程

如果我containually壓縮小字符數組,並將它們添加到一個更大的字符數組,我可以解壓縮大型字符數組一次,並取回我所有的原始數據?

例如:

char arry1 = "Today is"; 
char arry2 = " a nice day"; 
char arryBig[20]; 

//pseudo code for compress, but you get the idea 
compress(arry1) 

strcpy(arryBig, arry1); 

//again, pseudo code for compress 
compress(arry2); 

strcpy(arryBig+9, arry2); 

uncompress(arryBig); 

//does arryBig == "today is a nice day" ?? 
+0

我想你必須拿出你自己的壓縮算法,支持:) – LiMuBei

回答

1

不,你不能。壓縮的結果是一個複雜的結構,你不能簡單地連接。即使你可以,你也不應該用strcpy來做,因爲compress()的輸出可能包含空字符。

這也是一個好主意,因爲壓縮比將大大較長的數據運行更好。

如果您正在尋找某種流媒體解決方案,你唯一的選擇是緩衝自己的輸入,直到您準備壓縮。另一方面,如果您正在尋找一些類似zip的壓縮文件,則zlib網站上有代碼可幫助您創建zip壓縮文件。