c++ - 如何在不解压缩的情况下创建并附加到 gz 文件?

标签 c++ macos unix gzip

我有一个巨大的输入文件,大小为 TB(它是 gzipped (.gz))。

我需要单独读取每一行,然后决定是否将其添加到新文件中。

输出文件的大小也预计为 TB,但较小,因为我不会添加所有文件。

有没有办法使用标准库在 C++ 中执行此操作?我不想使用升压。这可能吗?

最佳答案

标准 C++ 库不处理 gzip 格式。标准 C 库也没有。我不知道提升。

但你当然可以使用 zlib ,如果 C 的使用令人望而生畏,我相信它带有 C++ 包装器。

顺便说一句,尽管理论上可行,但附加到 gzip 文件通常不是一个好主意。但是你失去了很多压缩,因为算法需要重置,从而失去上下文。但是,您可以打开压缩流并向其写入,因此无需将未压缩文件写入磁盘。我想这就是您查询所需的全部内容。

关于c++ - 如何在不解压缩的情况下创建并附加到 gz 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952415/

相关文章:

c++ - 在派生类中重载运算符

c++ - 将对象插入流

c++ - 未找到符号又名 undefined symbol

c - C 中确定文件的文件类型

linux - 通过shell脚本替换节点

c++ - C++ 中的指针参数接收地址?

c++ - 从返回类型为 'void' 的函数获取结果,而结果变量是输入参数之一 - C++

python - Mac 上的 Pywin32(com 对象)

objective-c - 我如何为 Mac OS X 制作可拖动的菜单栏图标

macos - Rust、OpenSSL、solana-test-validator 库未加载问题