圧縮されたバイナリデータをgzip形式で保存する変数 "stringstream"があります。VisualC++ in memory Uncompression
このstringstream変数をメモリに展開します。
まず、gzip形式のバイナリデータをメモリ内で解凍するには、使用するサードパーティのライブラリを教えてください。
gzipおよびdeflate形式の圧縮/圧縮解除にzlibライブラリが注目されました。
しかし、提供zlip解凍を扱う二つの機能はまさに私のニーズを満たしていないように見えます:
int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
int gzread (gzFile file, voidp buf, unsigned len);
最初の1(解凍)は、事前に解凍されたデータの長さを知るために私を必要とし、適切にストレージに十分なメモリを割り当てます。私の場合、それは不明です。
一方、2番目のファイル(gzread)はファイルを入力として受け取り、メモリバッファではありません。
zlipやその他のライブラリを使用した "効率的な"メモリ内解凍についてはどう思いますか?
ありがとうございました。 Boostライブラリでgzipのためのいくつかの解凍フィルタがあるように思わ
バイナリ形式のデータをgzipで圧縮されていませんか?それで 'stringstream'はエンコードしない限りデータを格納するのに良い選択ではありませんので、非ゼロの' char'値として格納することができます。その理由は、 'stringstream'はそのデータが文字列であり、文字列が有効なバイナリデータであるゼロで終わることを期待しているからです。 –