Intereting Posts
принудительное копирование поврежденного домашнего каталога Как передать каждую строку текстового файла в качестве аргумента в команду? Как настроить скорость вращения вентилятора NVIDIA GPU на безголовом узле? Как использовать sed для вставки символа в определенную позицию символа только на одну строку? Происхождение слова cron? Ошибка пустого экрана VirtualBox Centos Отключение веб-камеры Пересылка и маршрутизация iptables обходной брандмауэр с Openvpn + Squid как читать переменные в bash и передавать эти переменные в программу c ++ в качестве аргументов cpupower и libcpupower Почему эта команда ограничения входа tc не работает? (пропускная способность падает до нуля) Запустите sudo в качестве другого пользователя без полномочий root и сохраните его в домашнем каталоге этого пользователя Latexmk, из Makefile, из скрипта bash, из Cron – Latexmk не выполняется Поиск писателя файла

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

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

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

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

Другая возможность может заключаться в использовании некоторой специализированной файловой системы. Возможно, файловая система 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.