私は、ディスクで問題が発生した場合に、ZLIB を使用して圧縮した後、メモリのチャンクを別のディスクに送信するプロジェクトに取り組んでいます。このダンプをダウンロードして、さらにデバッグするために使用する予定です。この圧縮とアップロードは、一度に 1 つのチャンク (1024 K など) で行われます。
問題は、他のディスクにアップロードする前に、正確に 1024K の出力チャンクが必要なことです (これに加えて、ヘッダーとトレーラーも存在するため、このチャンク サイズは圧縮データのサイズです)。簡単に解凍できます。そしてそれを使用してください。出力バッファが 1024K になったら他のディスクに送信できるように put_byte 関数を変更しようとしましたが、これは機能していないようです。
Z_BUF_ERROR をチェックし、それを送信して圧縮手順全体を再起動することを考えましたが、保留中のすべての入力/出力がフラッシュされたかどうかはわかりません。
これを実行できる他の方法はありますか?つまり、出力バッファー (圧縮されたデータ サイズ) が正確に 1024K バイトのときにパケットが送信されるようにします。