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.
| Feldname | Struktur |
|---|---|
| name |
|
| mode |
|
| uid |
|
| gid |
|
| size |
|
| mtime |
|
| cksum |
|
| typeflag |
|
| linkname |
|
| magic |
|
| version |
|
| uname |
|
| gname |
|
| devmajor |
|
| devminor |
|
| prefix |
|
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.