压缩包中的 PaxHeaders
PaxHeaders in tarball
我正在做一个类似于 C 的 tar
,但我遇到了问题。
我只想归档和取消归档文件和目录,所以我运行这个命令:tar -cvf NAME.tar FILE1 [FILE2...]
现在我正在尝试获取此存档的 header POSIX
:
struct posix_header
{ /* byte offset */
char name[100]; /* 0 */
char mode[8]; /* 100 */
char uid[8]; /* 108 */
char gid[8]; /* 116 */
char size[12]; /* 124 */
char mtime[12]; /* 136 */
char chksum[8]; /* 148 */
char typeflag; /* 156 */
char linkname[100]; /* 157 */
char magic[6]; /* 257 */
char version[2]; /* 263 */
char uname[32]; /* 265 */
char gname[32]; /* 297 */
char devmajor[8]; /* 329 */
char devminor[8]; /* 337 */
char prefix[155]; /* 345 */
/* 500 */
};
int main()
{
struct posix_header header;
int fd;
if ((fd = open("./obj.tar", O_RDONLY)) < 2) //open tarball
return (1);
read(fd, &header, 500); //fill struct
printf("%s\n", header.name);
close(fd);
}
但输出始终为 ./PaxHeaders.NUMBER/FILE_NAME
。
当我尝试在编辑器中打开存档时,它会在每个文件前显示一个 PaxHeader。
什么是PaxHeaders
?有没有加个header完全兼容Pax?如果有,是否可以删除它们?
我有点迷路了,我是必须解析它们还是在这些 header 之后跳转?
POSIX.1 2008 定义了 ustar 格式的扩展,称为 pax 格式。它的新功能是使用特殊文件引入的 typeflag
设置为 x
用于 扩展 pax header(影响下一个文件)或 g
对于 global pax header(影响所有进一步的文件)。这些 header 允许归档程序在 tar 文件中存储其他属性,例如访问时间或扩展长度(以存储对于传统 tar 来说太大的文件)。
此答案中的 Space 限制太多,无法复制完整规范,请阅读 POSIX 了解更多详情。
我正在做一个类似于 C 的 tar
,但我遇到了问题。
我只想归档和取消归档文件和目录,所以我运行这个命令:tar -cvf NAME.tar FILE1 [FILE2...]
现在我正在尝试获取此存档的 header POSIX
:
struct posix_header
{ /* byte offset */
char name[100]; /* 0 */
char mode[8]; /* 100 */
char uid[8]; /* 108 */
char gid[8]; /* 116 */
char size[12]; /* 124 */
char mtime[12]; /* 136 */
char chksum[8]; /* 148 */
char typeflag; /* 156 */
char linkname[100]; /* 157 */
char magic[6]; /* 257 */
char version[2]; /* 263 */
char uname[32]; /* 265 */
char gname[32]; /* 297 */
char devmajor[8]; /* 329 */
char devminor[8]; /* 337 */
char prefix[155]; /* 345 */
/* 500 */
};
int main()
{
struct posix_header header;
int fd;
if ((fd = open("./obj.tar", O_RDONLY)) < 2) //open tarball
return (1);
read(fd, &header, 500); //fill struct
printf("%s\n", header.name);
close(fd);
}
但输出始终为 ./PaxHeaders.NUMBER/FILE_NAME
。
当我尝试在编辑器中打开存档时,它会在每个文件前显示一个 PaxHeader。
什么是PaxHeaders
?有没有加个header完全兼容Pax?如果有,是否可以删除它们?
我有点迷路了,我是必须解析它们还是在这些 header 之后跳转?
POSIX.1 2008 定义了 ustar 格式的扩展,称为 pax 格式。它的新功能是使用特殊文件引入的 typeflag
设置为 x
用于 扩展 pax header(影响下一个文件)或 g
对于 global pax header(影响所有进一步的文件)。这些 header 允许归档程序在 tar 文件中存储其他属性,例如访问时间或扩展长度(以存储对于传统 tar 来说太大的文件)。
Space 限制太多,无法复制完整规范,请阅读 POSIX 了解更多详情。