Как сделать фиктивное приложение считывает файлы gzip («на лету») без изменений кода

Я ищу общий инструмент / библиотеку, которая переопределяет функцию fopen OS для беспрепятственного чтения gz-файлов без перерывов в приложении.

Подробности. У меня есть устаревшее приложение, которое читает большие двоичные файлы. Эти двоичные файлы сжимаются очень хорошо, как gz. Я думал об сжатии этих двоичных файлов и сохранял расширение исходных файлов (в соответствии с требованиями устаревшего приложения) и использовал библиотеку или приложение, которое перехватывает и отменяет системные вызовы для поддержки чтения сжатых файлов без каких-либо изменений кода приложения и без полной отмены. Кроме того, выполнение общего сжатия файловой системы неприменимо, так как это может привести к снижению производительности других приложений HPC. Мне нужно только сжать определенные двоичные файлы, которые читаются устаревшими приложениями, и добавить поддержку этих приложений для чтения этих сжатых файлов без каких-либо изменений в исходном коде.

Есть ли что-то, что можно сделать? Я не забочусь о переносимости, если он отлично работает в моем дистрибутиве Linux (RHEL 6)

  • TAR: лучше пропустить каталог или использовать split
  • unpigz (и untar) в определенный каталог
  • pv (индикатор выполнения) и gzip
  • Поиск файлов с определенным размером внутри рекурсивных архивов на молнии
  • Как смонтировать каталог в другой каталог?
  • Как отключить сжатие gzip с помощью wget?
  • использовать tar для извлечения и немедленного сжатия файлов из tarball
  • Раскройте файлы, когда rsync'in
  • 2 Solutions collect form web for “Как сделать фиктивное приложение считывает файлы gzip («на лету») без изменений кода”

    Другая возможность может заключаться в использовании некоторой специализированной файловой системы. Возможно, файловая система FUSE (например, FUSE-BGZIP ), которая выполняет сжатие, может сделать трюк, и вы можете адаптировать ее только к прозрачному сжатию нескольких файлов, которые вы хотите (например, с некоторыми overlayfs ).

    См. Также этот вопрос (прозрачное сжатие для ext4).

    zlibc кажется, что он может делать то, что вы хотите. Вот описание и т. Д. Из пакета 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 shared library that allows executables to uncompress the data files that they need on the fly. No kernel patch, no recompilation of these executables and no recompilation of the libraries is needed. Homepage: http://zlibc.linux.lu/ 

    Я не знаю, как это работает, или если оно все еще поддерживается, или если есть пакет RHEL6.

    Linux и Unix - лучшая ОС в мире.