我有一个学校项目,需要制作一个类似Unix系统tar的C程序。我有一些问题需要解释:
归档文件大小 我从互联网上了解到,一个归档文件具有定义好的512字节块数量。因此,头部有512字节,然后是文件内容(如果只有一个文件要归档),以512字节的块组织, 然后再加上2个512字节的块。
例如:假设我要归档一个大小为0字节的txt文件。这应该意味着需要使用512 x 3字节。但是,当我在Unix中使用tar函数并单击属性时,它显示的是10240字节。我认为它添加了一些0(NULL)字节,但是我不知道在哪里、为什么以及多少个...
头部校验和 据我所知,这应该是归档文件的大小。当我使用hexdump -C检查它时,它像一个数字出现在归档文件的实际大小旁边(在单击属性时)。例如,如果我要归档一个0字节的txt文件,则会显示11200或11205或类似的数字。这个大小是八进制还是十进制?我猜它是八进制,因为你放在头部的所有信息都需要是八进制的。那么我在这里的第二个问题是:从原始大小10240字节中添加了多少内容?
头部模式 假设我有一个664的文件,格式化后的文件将是0,然后我应该在头部中放置0664。为什么在一个真正的归档文件中,在开头印刷了3个额外的0(000064)?