既存のストリームの末尾にデータを追加できる zlib の iostream ラッパーが必要です。
追加モードの gzopen() 関数は、次の規則に従います。「追加するとき、gzopen は、ファイルが gzip ストリームで始まるかどうかをテストせず、追加を開始するために gzip ストリームの終わりを探しません。gzopen は単に gzip ストリームを既存のファイルに追加します。」たとえば、「a」オプションでファイルを開くと、複数の圧縮ストリームを持つファイルが作成されます。
zlib の gzofstream ラッパーは、パラメーター リストの std::ios_base::app を gzopen() 関数の "ab" モードとして変換します。その結果、gzofstream は複数のストリームを持つファイルも作成します。
ただし、私のアプリケーションでは、別の動作が必要です。メイン モジュールはファイルを追加モード (std::ios_base::app オプションを使用) で開き、既存のストリームの最後に小さなデータ部分を書き込み、ファイルを閉じる必要があります。たとえば、ファイルには、複数回のオープン/クローズ操作の後、常に単一の圧縮ストリームが含まれている必要があります。
zlib の gzlog の例には、必須に近い機能があります。ただし、純粋な C です。
私の仕事に適した解決策をいくつか提案してもらえますか?