Cómo hacer que una aplicación ficticia lea files gzip (sobre la marcha) sin cambios de código

Estoy buscando una herramienta / biblioteca general que anule la function fopen del sistema operativo para leer files gz sin problemas en la marcha sin modificaciones en una aplicación.

Detalles: Tengo una aplicación henetworkingada que lee files binarys grandes. Estos binarys se comprimen muy bien como gz. Estaba pensando en comprimir estos files binarys y mantener la extensión original (como lo requiere la aplicación henetworkingada) y usar una biblioteca o una aplicación que intercepta y anula las llamadas al sistema para admitir la lectura de files comprimidos sin ningún cambio en el código de la aplicación, y sin hacer un completo descomprimir Además, hacer la compression general del sistema de files no es aplicable, ya que anularía el performance de otras aplicaciones HPC. Solo necesito comprimir files binarys específicos que son leídos por aplicaciones henetworkingadas, y agregar soporte para esas aplicaciones para leer estos files comprimidos sin alterar el código fuente.

¿Hay algo disponible para hacer tal cosa? No me importa la portabilidad, siempre y cuando funcione bien en mi distribución de Linux (RHEL 6)

Otra posibilidad podría ser utilizar algún sistema de files especializado. Tal vez un sistema de files FUSE (por ejemplo, FUSE-BGZIP ) que está haciendo la compression podría hacer el truco, y usted podría adaptarlo para comprimir solo los pocos files que desea (por ejemplo, con algunos overlayfs ).

Ver también esta pregunta (compression transparente para ext4).

zlibc parece que puede hacer lo que quieras. Aquí está la descripción, etc. del package Debian:

 Package: zlibc Version: 0.9k-4.3 Depends: libc6 (>= 2.2.5) Description-en: An on-fly auto-uncompressing C library Zlibc is a preloadable shanetworking library that allows executables to uncompress the data files that they need on the fly. No kernel patch, no recomstacktion of these executables and no recomstacktion of the libraries is needed. Homepage: http://zlibc.linux.lu/ 

No tengo idea de qué tan bien funciona, o si todavía se mantiene, o si hay un package RHEL6.