Архивирование файла из памяти в Linux - PullRequest
2 голосов
/ 09 июня 2011

Я работаю над приложением, которое должно зашифровать и заархивировать файлы.Итак, я создаю некоторые данные в памяти (текстовые, двоичные или другие), шифрую их и сохраняю на диск (файл1 и файл2).Я называю, например, "zip out.zip file1 file2".

Я не хочу сохранять эти файлы на диск, но сразу создаю zip и упаковываю эти файлы из памяти.

Как мнесделать это?

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Вы можете попробовать использовать библиотеку zlib , чтобы иметь возможность создавать zip-файлы из буферов памяти.

Повышение : iostreams также может быть хорошим решением.

1 голос
/ 09 июня 2011

Обратите внимание, что вы должны сначала сжать, а затем зашифровать.Зашифрованные данные больше не могут быть сжаты.

Интересно, что мне не удалось найти библиотеку для создания ZIP-файлов из C. zlib позволяет (де) сжимать отдельные файлы.записи в ZIP-архиве.

Поставляется с contrib/minizip;может быть, это поможет вам начать.

1 голос
/ 09 июня 2011

Для zlib в вкладках есть расширение для zip, называемое minizip.Вы можете найти код для работы с буферами в памяти на странице авторы :

Джастин Флетчер написал очень простую реализацию метода доступа к памяти для кода ioapi ( ioapi_mem_c.zip ).

...