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

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

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

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

  • Как происходит застежка созданного образа диска, делает меньше файлов, чем трубопроводов?
  • Есть ли инструмент, который комбинирует zcat и cat прозрачно?
  • Как использовать gunzip и tar для извлечения моего файла tar.gz в конкретный каталог, который я хочу?
  • Можно ли сделать файл .tar.gz непосредственно из stdin? Или, мне нужно, чтобы смонтировать вместе уже gzipped файлы
  • Gzip распаковывает файл с другим расширением?
  • gzip - перенаправление или трубопроводы?
  • Почему tar-архивные форматы переключаются на сжатие xz для замены bzip2 и что с gzip?
  • Есть ли разница между gunzip -c и gunzip с точки зрения использования системы?
  • 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.

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