Datei tar.h

Zweck

Enthält Definitionen für Flags, die im Tar -Archivheader verwendet werden.

Beschreibung

Die Datei /usr/include/tar.h enthält erweiterte Definitionen, die in der DateitypeflagundmodeFelder des Headerblocks des Tar -Archivs. Die Datei enthält auch Werte für die erforderlichen POSIX -Einträge.

Headerblock des tar-Archivs

Jede mit dem Befehl Tar archivierte Datei wird durch einen Headerblock dargestellt, der die Datei beschreibt, gefolgt von null oder mehr Blöcken, die den Inhalt der Datei angeben. Der Anzeiger für das Ende des Archivs besteht aus zwei Blöcken, die mit binären Nullen gefüllt sind. Jeder Block hat eine feste Größe von 512 Byte.

Blöcke werden für physische E/A-Operationen gruppiert und Gruppen können mit einer einzigen Schreiben -Subroutinenoperation geschrieben werden. Auf Magnetband ist das Ergebnis dieser Schreiboperation ein einzelner Bandsatz. Der letzte Datensatz ist immer ein voller 512 Byte. Blöcke nach den Nullen am Ende des Archivs enthalten nicht definierte Daten.

Die Headerblockstruktur wird in der folgenden Tabelle gezeigt. Alle Längen und Offsets sind dezimal.

Tabelle 1 Headerblockstruktur
Feldname Struktur
name
Relative Position:
0
Länge in Byte:
100
Inhalt:
Dateiname ohne Schrägstrich (/)
mode
Relative Position:
100
Länge in Byte:
8
Inhalt:
Dateimodus
uid
Relative Position:
108
Länge in Byte:
MAXIMALER_PROTOKOLLNAME_MAX
Inhalt:
Benutzer-ID
gid
Relative Position:
116
Länge in Byte:
MAXIMALER_PROTOKOLLNAME_MAX
Inhalt:
Gruppen-ID
size
Relative Position:
124
Länge in Byte:
12
Inhalt:
Größe in Byte
mtime
Relative Position:
136
Länge in Byte:
12
Inhalt:
Letzte Änderungszeit
cksum
Relative Position:
148
Länge in Byte:
8
Inhalt:
Datei-und Headerkontrollsumme
typeflag
Relative Position:
156
Länge in Byte:
1
Inhalt:
Dateityp
linkname
Relative Position:
157
Länge in Byte:
100
Inhalt:
Verknüpfter Pfadname oder Dateiname
magic
Relative Position:
257
Länge in Byte:
6
Inhalt:
Formatdarstellung für TAR
version
Relative Position:
263
Länge in Byte:
3
Inhalt:
Versionsdarstellung für TAR
uname
Relative Position:
265
Länge in Byte:
32
Inhalt:
Benutzername
gname
Relative Position:
297
Länge in Byte:
32
Inhalt:
Gruppenname
devmajor
Relative Position:
329
Länge in Byte:
8
Inhalt:
Darstellung der Haupteinheit
devminor
Relative Position:
337
Länge in Byte:
8
Inhalt:
Darstellung untergeordneter Einheiten
prefix
Relative Position:
345
Länge in Byte:
155
Inhalt:
Pfadname ohne abschließende Schrägstriche

Namen werden nur beibehalten, wenn die Zeichen aus dem portierbaren POSIX -Zeichensatz für Dateinamen ausgewählt werden oder wenn derselbe erweiterte Zeichensatz zwischen Systemen verwendet wird. Während einer Leseoperation kann eine Datei nur erstellt werden, wenn mit der Subroutine Öffnen, Statistik, Chdir, Fcntloder Open-Verzeichnis auf die Originaldatei zugegriffen werden kann.

Headerblockfelder

Jedes Feld im Headerblock und jedes Zeichen auf dem Archivmedium sind zusammenhängend. Es gibt keine Auffüllung zwischen Feldern. Es folgen weitere Informationen zu den einzelnen Feldern und ihren Werten:

name
Der Pfadname der Datei wird über dieses Feld oder über dieses Feld in Verbindung mit demprefixerlaubt. Wenn dasprefixFeld enthalten ist, lautet der Name der Dateiprefix/name. Dieses Feld endet auf null, wenn nicht jedes Zeichen ungleich null ist.
mode
Stellt 9 Bit für Dateiberechtigungen und 3 Bit für SUID-, SGID, -und SVTX-Modi bereit. Alle Werte für dieses Feld sind oktal. Während einer Leseoperation werden die designierten Modusbits ignoriert, wenn der Benutzer nicht über gleiche (oder höhere) Berechtigungen verfügt oder wenn die Modi nicht unterstützt werden. Numerische Felder werden mit einem Leerzeichen und einem Nullbyte beendet. Die Datei tar.h enthält die folgenden möglichen Werte für dieses Feld:
Flag Oktal Beschreibung
TSUID 04000 Benutzer-ID bei Ausführung festlegen
TSG-ID 02000 Gruppen-ID bei Ausführung festlegen.
TSVTX 01000 Reserviert.
TULESEN 00400 Gelesen von Eigner.
TUWRITE 00200 Schreiben nach Eigner.
TUEXEC 00100 Ausführung oder Suche nach Eigner.
TGREAD (GRÜN) 00040 Gelesen von Gruppe.
TGSCHREIBEN 00020 Schreiben nach Gruppe.
TGEXEC-Anweisung 00010 Ausführung oder Suche nach Gruppe.
GELESEN 00004 Von anderen gelesen.
ZU SCHREIBEN 00002 Von anderen schreiben.
TOEXEC-Anweisung 00001 Ausführung oder Suche durch andere.
uid
Wird aus den entsprechenden Archivfeldern extrahiert, es sei denn, ein Benutzer mit entsprechenden Berechtigungen stellt die Datei wieder her. In diesem Fall wird der Feldwert stattdessen aus den Kennwort-und Gruppendateien extrahiert. Numerische Felder werden mit einem Leerzeichen und einem Nullbyte beendet.
gid
Wird aus den entsprechenden Archivfeldern extrahiert, es sei denn, ein Benutzer mit entsprechenden Berechtigungen stellt die Datei wieder her. In diesem Fall wird der Feldwert stattdessen aus den Kennwort-und Gruppendateien extrahiert. Numerische Felder werden mit einem Leerzeichen und einem Nullbyte beendet.
size
Der Wert ist 0, wenn die typeflagwird auf LNKTYPgesetzt. Dieses Feld wird nur mit einem Leerzeichen beendet.
mtime
Der Wert wird aus dem Feld für die Änderungszeit der Subroutine Statistik abgerufen. Dieses Feld wird nur mit einem Leerzeichen beendet.
chksum
Bei der Berechnung wird die Summe aller Bytes in der Headerstruktur als Leerzeichen behandelt. Jedes Byte ohne Vorzeichen wird einer ganzen Zahl ohne Vorzeichen (initialisiert mit 0) mit einer Genauigkeit von mindestens 17 Bit hinzugefügt. Numerische Felder werden mit einem Leerzeichen und einem Nullbyte beendet.
typeflag
Die Datei tar.h enthält die folgenden möglichen Werte für dieses Feld:
Flag Wert Beschreibung
REGIONSTYP '0' Reguläre Datei.
AREGTYP '\0' Reguläre Datei.
LNKTYP „1“ Link.
SYMTYP „2“ Reserviert.
KHRTYP '3' Sonderzeichen.
BLKTYP "4" Blockspezial.
DIRTYP „5“ Verzeichnis. In diesem Fallsizehat keine Bedeutung.
FIFOTYP „6“ FIFO-Spezial. Die Archivierung einer FIFO-Datei archiviert ihr Vorhandensein, nicht ihren Inhalt.
INHALTSTYP „7“ Reserviert.

Wenn andere Werte verwendet werden, wird die Datei als reguläre Datei extrahiert und eine Warnung an die Standardfehlerausgabe ausgegeben. Numerische Felder werden mit einem Leerzeichen und einem Nullbyte beendet.

Das Flag LNKTYP stellt einen Link zu einer anderen Datei eines beliebigen Typs dar, die zuvor archiviert wurde. Solche verbundenen Dateien werden durch jede Datei mit derselben Einheiten-und Dateiseriennummer identifiziert. Der Name des verknüpften Namens wird in derlinknameFeld, einschließlich eines abschließenden Nullbyte.

linkname
Verwendet nicht dieprefixum einen Pfadnamen zu erzeugen. Wenn der Pfadname oderlinknameWert zu lang ist, wird eine Fehlernachricht zurückgegeben und alle Aktionen für diese Datei oder dieses Verzeichnis werden abgebrochen. Dieses Feld ist auf null endend, sofern nicht jedes Zeichen ungleich null ist.
magic
Enthält den Wert TMAGIC , der das erweiterte Tar -Archivformat widerspiegelt. In diesem Fallunameundgnameenthält die ASCII-Darstellung für den Dateieigner und die Dateigruppe. Wenn eine Datei von einem Benutzer mit den entsprechenden Berechtigungen wiederhergestellt wird,uidundgidwerden aus den Kennwort-und Gruppendateien extrahiert (anstelle der entsprechenden Archivfelder). Dieses Feld endet auf null.
version
Steht für die Version des Tar -Befehls, der zum Archivieren der Datei verwendet wird Dieses Feld wird nur mit einem Leerzeichen beendet.
uname
Enthält die ASCII-Darstellung des Dateieigners. Dieses Feld endet auf null.
gname
Enthält die ASCII-Darstellung der Dateigruppe. Dieses Feld endet auf null.
devmajor
Enthält die Haupteinheitennummer. Beendet mit einem Leerzeichen und einem Nullbyte.
devminor
Enthält die Nebengerätenummer. Beendet mit einem Leerzeichen und einem Nullbyte.
prefix
Wenn dieses Feld ungleich null ist, wird der Pfadname der Datei mit demprefix/nameWerte zusammen. Null-terminiert, sofern nicht jedes Zeichen ungleich null ist.