我想知道如何使用编程语言C来创建文件存档器,例如tar。 我坚持第一点关于如何将一堆文件复制到一个文件中,然后将它们从那个文件中提取出来。 任何帮助将不胜感激。
答案 0 :(得分:2)
阅读tar格式以获得一些灵感是个好主意。
http://en.wikipedia.org/wiki/Tar_%28file_format%29
http://www.gnu.org/software/automake/manual/tar/Standard.html
如果您掌握了基本的C I / O,这很简单,也不应该太难实现。
答案 1 :(得分:0)
假设您不想要压缩,这非常困难,并且只是想要一些非常简单的东西,您将需要执行以下操作:
创建一个文件来保存所需的所有文件。
获取您要归档的其中一个文件,获取name
,name_size
,然后size
。
将文件的name_size
,name
,name
的{{1}}和文件的size
*字节写入存档文件中。
对要归档的所有文件重复上述步骤。
要从一个存档中恢复文件,您需要读取名称的大小,使用下一个size
下一个字节创建该文件,然后读取文件字节的name_size
,并将它们写入您创建的单个文件。
你会有这个:
File1中:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
FileN:
yyyyyyyyyyyyyyyyyyyy
归档后,您将拥有:
5File1 size
{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx5FileN {1}} yyyyyyyyyyyyyyyyyyyy