tar.h 文件
用途
包含 焦油 归档头中使用的标志的定义。
描述
/usr/include/tar.h 文件包含在typeflag和mode焦油 归档头块的字段。 该文件还提供必需 POSIX 条目的值。
tar 归档头块
使用 焦油 命令归档的每个文件都由描述该文件的头块表示,后跟零个或多个提供该文件的内容的块。 归档结束指示符由两个用二进制零填充的块组成。 每个块都是 512 字节的固定大小。
对于物理 I/O 操作,可以对块进行分组,并且可以使用单个 写 子例程操作来编写组。 在磁带上,此写操作的结果是单条磁带记录。 最后一条记录始终是完整的 512 字节。 归档结束后的块零包含未定义的数据。
下表中显示了标题块结构。 所有长度和偏移量都以十进制表示。
| 字段名称 | 结构 |
|---|---|
| name |
|
| mode |
|
| uid |
|
| gid |
|
| size |
|
| mtime |
|
| cksum |
|
| typeflag |
|
| linkname |
|
| magic |
|
| version |
|
| uname |
|
| gname |
|
| devmajor |
|
| devminor |
|
| prefix |
|
仅当从 POSIX 可移植文件名字符集中选择字符,或者在系统之间使用同一扩展字符集时,才会保留名称。 在读操作期间,仅当可以使用 开, 统计, 奇迪尔, 弗纳特尔或 奥彭迪尔 子例程来访问原始文件时,才可以创建文件。
头块字段
头块中的每个字段以及归档介质上的每个字符都是连续的。 字段之间不存在填充。 以下是有关特定字段及其值的更多信息:
- name
- 该文件的路径名是使用此字段创建的,或者通过使用此字段来与prefix。 如果prefix字段,那么该文件的名称为prefix/name除非每个字符都是非空的,否则此字段以 null 结束。
- mode
- 为文件许可权提供 9 位 3 为 SUID, SGID, 和 SVTX 方式提供 3 位。 此字段的所有值都以八进制表示。 在读操作期间,如果用户不具有相等 (或更高) 的许可权,或者如果不支持这些方式,那么将忽略指定的方式位。 数字字段以空格和空字节为结尾。 tar.h 文件包含此字段的以下可能值:
标志 八进制 描述 TSUID 04000 执行时设置用户标识。 TSGID 02000 执行时设置组标识。 TSVTX 01000 已保留。 读 00400 由所有者读取。 图文 00200 由所有者写入。 TUEXEC 00100 按所有者执行或搜索。 TGREAD 00040 按组读取。 TGWRITE 00020 按组写入。 TGEXEC 00010 按组执行或搜索。 读 00004 由他人阅读。 托莱 00002 由他人撰写。 TOEXEC 00001 由其他用户执行或搜索。 - uid
- 除非具有适当特权的用户复原文件,否则从相应的归档字段中抽取。 在此情况下,将改为从密码和组文件中抽取字段值。 数字字段以空格和空字节为结尾。
- gid
- 除非具有适当特权的用户复原文件,否则从相应的归档字段中抽取。 在此情况下,将改为从密码和组文件中抽取字段值。 数字字段以空格和空字节为结尾。
- size
- 值为 0 时, typeflag字段设置为 LNKTYPE。 该字段仅以空格终止。
- mtime
- 值是从 统计 子例程的修改时间字段获取的。 该字段仅以空格终止。
- chksum
- 在计算时,头结构中所有字节的总和都被视为空格。 将每个无符号字节添加到一个无符号整数 0 初始化为 0) ,精度至少为 17 位。 数字字段以空格和空字节为结尾。
- typeflag
- tar.h 文件包含此字段的以下可能值:
标志 值 描述 区域类型 '0' 常规文件。 区域类型 '\0' 常规文件。 LNKTYPE '1' 链接。 SYMTYPE '2' 已保留。 CHRTYPE '3' 字符特殊。 BLKTYPE '4' 特殊块。 DIRTYPE '5' 目录。 在这种情况下,size字段没有意义。 FIFOTYPE '6' FIFO 特殊。 对 FIFO 文件进行归档将其存在,而不是对内容进行归档。 内容类型 '7' 已保留。 如果使用其他值,那么会将该文件抽取为常规文件,并向标准错误输出发出警告。 数字字段以空格和空字节为结尾。
LNKTYPE 标志表示指向先前归档的任何类型的另一个文件的链接。 此类链接到文件由具有相同设备和文件序列号的每个文件进行标识。 链接目标名称在以下位置指定:linkname字段,包括尾部空字节。
- linkname
- 不使用该prefix字段以生成路径名。 如果路径名或linkname值过长,将返回错误消息并取消对该文件或目录执行的任何操作。 除非每个字符都非空,否则此字段将以 null 结束。
- magic
- 包含 TMAGY 值,反映扩展的 焦油 归档格式。 在这种情况下,uname和gname字段将包含文件所有者和文件组的 ASCII 表示法。 如果某个文件由具有适当特权的用户复原,那么uid和gid从密码和组文件中抽取字段 (而不是相应的归档字段)。 此字段以 null 结束。
- version
- 表示用于对文件进行归档的 焦油 命令的版本。 该字段仅以空格终止。
- uname
- 包含文件所有者的 ASCII 表示法。 此字段以 null 结束。
- gname
- 包含文件组的 ASCII 表示法。 此字段以 null 结束。
- devmajor
- 包含设备主号码。 已以空格和空字节终止。
- devminor
- 包含设备次编号。 已以空格和空字节终止。
- prefix
- 如果此字段为非空,那么将使用以下命令创建文件的路径名:prefix/name值。 除非每个字符都非空,否则以 null 结束。