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

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

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

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

  • Как gunzip файлы присутствуют в нескольких подкаталогах в подкаталогах
  • Как я могу изменить первую строку большого файла gzip без распаковки всего этого?
  • Ускорение работы zgrep на многоядерном компьютере
  • gzip - есть ли риск потерять файлы во время сжатия, если процесс мертв?
  • Почему я получаю неожиданный конец файла в моем скрипте при использовании gzip?
  • Оценить сжимаемость файла
  • Gzip распаковывает файл с другим расширением?
  • Как добавить строку в zip-файл без разархивирования?
  • 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 - лучшая ОС в мире.