c++ - 我如何将数据通过管道传输到 bzip2 并从其在 Linux 上的 C++ 中的标准输出中获取结果数据?

标签 c++ linux compression pipe bzip2

我正在考虑开始为 Linux 开发一个库,该库将为应用程序开发人员提供一个虚拟文件系统,其中文件将存储在存档中,并且存档中的每个文件都将单独压缩,以便检索单个文件对于开发人员、CPU 和硬盘驱动器来说,这是一项非常简单的任务。 (没有复杂的 API,不需要解压大量数据,只需要相关数据,只检索相关数据而不是整个文件)

在 Linux 上使用 C++ 之前,我已经使用 popen 来检索命令的标准输出,但我不知道如何通过管道输入和输出数据,一些 bzip2 特定的提示会很好。我几年前写了一些类似的东西,但它包含一个霍夫曼压缩库作为 dll,而不是必须通过管道传输数据和使用标准工具。 (那是在我的 Windows 时代。)

最佳答案

bzip2 有一个 library interface -- 这对您来说可能比调用子流程更容易。

我建议您也看看 GIO library ,这已经是“应用程序开发人员的虚拟文件系统”;与从头开始编写库 VFS 相比,将其扩展为执行所需的工作可能要少得多。

关于c++ - 我如何将数据通过管道传输到 bzip2 并从其在 Linux 上的 C++ 中的标准输出中获取结果数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8145538/

相关文章:

ios - 压缩文件以缩小 iOS 应用程序

c++ - 函数模板参数推导

c++ - Bison : Line number included in the error messages

linux - 采购环境输出

java - 使用有损 jpeg 压缩多页 tiff 图像

node.js - 减少 Node 中PDF的大小

c++ - 我不知道如何处理我的日历代码

c++ - Armadillo 错误 : no matching function for call to ‘inv(arma::SpMat<double>&)’

带有黑白条纹的linux zoneminder视频

linux - 如何在 ELF 二进制文件中搜索特定指令