LINUX.ORG.RU

Произвольный доступ к содержимому .gz архива


0

0

Какие есть библиотеки позволяющие произвольный доступ (open/close/read/seek) к содержимому gz-архива, чтобы при это распаковка не требовалась? Файлы большие и их много, а информации из них требуется чуть, распаковывать каждый раз - много времени тратится.

Gnome-VFS находится в плачевном состоянии, AVFS под FreeBSD работать отказалась.

Библиотека должна работать под FreeBSD.

★★★★

gz - не архив. Ни разу. Если же тебе нужен произвольный доступ к .tar.gz - то сначала задумайся о произвольном доступе к просто .tar. Решишь эту задачу, остальное приложится. До сих пор удовлетворительных решений (с индексированием в бэкграунде) - не было.

LUser
()
Ответ на: комментарий от LUser

>gz - не архив. Ни разу.

Я знаю. Не цепляйся к словам.

На всякий случай уточню - это один файл, сжатый gzip. Вот к распакованному содержимому мне и нужно доступаться, не распаковывая весь файл. В принципе, удовлетворит вариант с предварительно индексацией, если она будет немного занимать.

WFrag ★★★★
() автор топика
Ответ на: комментарий от WFrag

Вообще, если желание есть, можно gnome-vfs починить

anonymous
()
Ответ на: комментарий от WFrag

>Действительно, то, что надо.

Только это... Скорее всего не удастся разжать его со средины. Другое дело bzip2 - готовая реализация вроде не поддерживает этого(AFAIR), но в принципе это возможно.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

>Только это... Скорее всего не удастся разжать его со средины

По кайней мере, функция seek есть. Вопрос в том, умеет ли она большими блоками пропускать, или ей нужно распаковывать каждый байт.

В общем, потестирую, посмотрю как скорость будет. Текущий вариант - это вообще полная распаковка с кешированием распакованных файлов.

WFrag ★★★★
() автор топика
Ответ на: комментарий от WFrag

afaik чтобы можно было с середины читать, нужно немножко менять формат -- или какие-то дополнительные метки вставлять, или просто поблочно сжимать. Поищи -- такие вещи обсуждались в списках рассылки по поводу создания compressed filesystem.

dilmah ★★★★★
()
Ответ на: комментарий от WFrag

> умеет ли она большими блоками пропускать, или ей нужно распаковывать каждый байт.

Без спец. приёмов - не умеет. Надо всё распаковывать. Глянь в сторону dictzip (это к dictd) - там применяются способы для ускорения произвольного доступа к сжатым словарям.

watashiwa_daredeska ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.