Файловый архиватор на С - PullRequest
       1

Файловый архиватор на С

0 голосов
/ 26 ноября 2010

Я хотел бы знать, как я мог бы использовать язык программирования C для создания архиватора файлов, такого как tar. Я застрял на первом месте, как скопировать кучу файлов в один файл, а затем извлечь их обратно из этого одного файла. Любая помощь будет оценена спасибо.

Ответы [ 2 ]

2 голосов
/ 26 ноября 2010

Это хорошая идея, чтобы почитать формат tar для вдохновения.

http://en.wikipedia.org/wiki/Tar_%28file_format%29

http://www.gnu.org/software/automake/manual/tar/Standard.html

Это довольно просто и не должно быть слишком сложно реализовать себя, если вы хорошо разбираетесь в базовых настройках ввода-вывода.

0 голосов
/ 26 ноября 2010

Предполагая, что вам не нужно сжатие, что довольно сложно, и просто нужно что-то ДЕЙСТВИТЕЛЬНО простое, вам нужно будет сделать следующее:

Создать файл для хранения всех файлов, которые вы хотите.

Получите один из файлов, которые вы хотите заархивировать, получите name, name_size и size.

Запишите name_size из name, namesize файла и size * байт файла в архивный.Повторите для всех файлов, которые вы хотите заархивировать.

Чтобы вернуть файлы из одного архива, вам нужно будет прочитать размер имени, создать этот файл со следующими name_size следующими байтами, затемпрочитайте size байтов файла и запишите их в один созданный вами файл.

Вы бы получили:

Файл1:


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


FileN:


гггггггггггггггггггг


После архивирования у вас будет:


5Файл1 size of File1 ххххххххххххххххххххsizeof FileN гггггггггггггггггггг


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...