Как записать несколько файлов в памяти в один файл архива в C? - PullRequest
2 голосов
/ 22 апреля 2019

Мне нужно объединить несколько файлов в памяти в один «стандартный» (не мой) формат файла архива с использованием языка Си. Сжатие не важно, но это должен быть один файл, то есть файл .tar. В результате мне нужно записать этот архивный файл в stdout.

В C # я обычно использую пространство имен System.IO.Packaging, но теперь мне нужно использовать C. Большинство примеров описывают сжатие сущностей файловой системы, но я не могу просто использовать утилиту tar, потому что у меня есть данные в unsigned char * переменных, а не на диске. Я знаю, libtar может помочь, но все примеры, которые я нашел, используют временные файлы. Я хотел бы найти решение, которое не создает временные файлы.

1 Ответ

3 голосов
/ 22 апреля 2019

tar должен быть форматом только для добавления.Я считаю, что вы можете использовать любой из libtar примеров, кроме использования tar_fdopen с STDOUT_FILENO для fd ...

...