使用c打包文件,以便可以解压缩为原始文件
我必须以这种方式打包一些文件,以便在以后的某个阶段,我可以使用c程序再次将它们解包为原始文件。请建议。一个快速的解决方案是利用外部库,如(用法示例:)并将其用于压缩使用c打包文件,以便可以解压缩为原始文件,c,C,我必须以这种方式打包一些文件,以便在以后的某个阶段,我可以使用c程序再次将它们解包为原始文件。请建议。一个快速的解决方案是利用外部库,如(用法示例:)并将其用于压缩 如果您想更深入地了解压缩主题,请查看不同的无损压缩算法和进一步的提示。一个快速解决方案是利用外部库(如使用示例:)并将其用于压缩 如果您想更深入地了解压缩主题,请查看不同的无损压缩算法和进一步的提示。我想,想要编写自己的实现的原因可能是好奇 无论是否添加压缩,如果您只是想将文件存储在存档中,类似于tar命令,那么您有几种可能的方法
如果您想更深入地了解压缩主题,请查看不同的无损压缩算法和进一步的提示。一个快速解决方案是利用外部库(如使用示例:)并将其用于压缩
如果您想更深入地了解压缩主题,请查看不同的无损压缩算法和进一步的提示。我想,想要编写自己的实现的原因可能是好奇 无论是否添加压缩,如果您只是想将文件存储在存档中,类似于
tar
命令,那么您有几种可能的方法
您必须做出的一个基本选择是:如何在归档中划分打包文件的边界?使用特殊字符不是一个好主意,因为打包文件可以包含任何字符
要跟踪文件的结尾,可以使用文件的长度(以字节为单位)。例如,对于每个文件,您可以:
lseek_64
跳过读取不需要的程序数据,但处理器至少需要读取每个文件名和每个文件长度。跳过文件数据需要文件长度。在我整理数据时,必须读取文件名才能定位文件长度
所以这是低效的。即使访问文件大小不需要读取文件名,但文件详细信息散布在整个归档文件中这一事实意味着读取索引数据需要访问磁盘上的多个数据范围
更好的方法可能是在文件前面写一个索引数据“块”。此数据结构可能类似于:
为了满足所有这些不同的需求,文件结构可能变得越来越复杂。例如,可以设计索引,使其始终从文件系统认为的“页面”(操作系统从磁盘读取或写入的最小大小颗粒)中分配,如果索引需要增长,则不连续的“索引页面”通过从一个索引页面到另一个索引页面的文件位置数据链接在一起。(就像一个链表,但是在磁盘上。)复杂性可以持续不断。我想,想要编写自己的实现的原因可能是好奇 无论是否添加压缩,如果您只是想将文件存储在存档中,类似于
tar
命令,那么您有几种可能的方法
您必须做出的一个基本选择是:如何在归档中划分打包文件的边界?使用特殊字符不是一个好主意,因为打包文件可以包含任何字符
要跟踪文件的结尾,可以使用文件的长度(以字节为单位)。例如,对于每个文件,您可以:
<file-type,file-path,file-size,file-mode>
<0,foo.txt,245,0755>
here the file contents