如何让虚拟应用程序在不更改代码的情况下读取 gzip 文件(即时)

Azi*_*ziz 3 gzip read

我正在寻找一个通用工具/库,它可以覆盖 OS fopen 函数以在不修改应用程序的情况下即时无缝读取 gz 文件。

详细信息:我有一个读取大型二进制文件的旧应用程序。这些二进制文件和 gz 一样压缩得很好。我正在考虑压缩这些二进制文件并保留原始文件扩展名(根据遗留应用程序的要求),并使用一个库或应用程序来拦截和覆盖系统调用以支持读取压缩文件而不对应用程序代码进行任何更改,并且不做完全解压。此外,进行整体文件系统压缩也不适用,因为它会降低其他 HPC 应用程序的性能。我只需要压缩遗留应用程序读取的特定二进制文件,并添加对这些应用程序的支持以读取这些压缩文件,而无需对源代码进行任何更改。

有什么可以做这样的事情吗?我不关心可移植性,只要它在我的 Linux 发行版(RHEL 6)中运行良好

Bas*_*tch 5

另一种可能性可能是使用一些专门的文件系统。也许正在执行压缩的FUSE文件系统(例如FUSE-BGZIP)可以解决问题,并且您可以将其调整为仅透明地压缩您想要的少数文件(例如使用一些overlayfs)。

另请参阅问题(ext4 的透明压缩)。