0
我有一個「stringstream」變量,它以gzip格式存儲一些壓縮的二進制數據。VisualC++在內存中解壓縮
我想解壓縮這個stringstream變量在內存中。
首先,對於gzip格式的二進制數據的內存解壓縮,您建議使用哪種第三方庫?
我注意到了zlib庫的gzip和deflate格式的壓縮/解壓縮。
然而,似乎是兩個函數處理減壓是ZLIP提供不能夠滿足我的需求正是:
int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
int gzread (gzFile file, voidp buf, unsigned len);
第一個(解壓縮)要求我事先知道要解壓縮數據的長度正確分配足夠的內存用於存儲。在我的情況下,它是未知的。
另一方面,第二個(gzread)將文件作爲輸入,而不是內存緩衝區。
對於使用zlip或其他庫的「高效」內存解壓縮,您有什麼建議?
謝謝。
是不是gzip壓縮的二進制格式的數據?然後'stringstream'不是一個很好的選擇來存儲數據,除非你編碼它,因此它可以存儲爲非'char'值。原因是'stringstream'期望它的數據是字符串,並且字符串被終止爲零,這是有效的二進制數據。 –