cpio-Dateiformat
Zweck
Beschreibt dieCpio-Archivdatei (Copy In/Out).
Beschreibung
Das Dienstprogramm Cpio sichert Dateien und stellt sie wieder her. Die Dateien werden auf dem Sicherungsdatenträger im Format Cpio gespeichert.
Wenn der Befehl Cpio mit dem Flag -c verwendet wird, lautet der Header für die Cpio -Struktur wie folgt:
sscanf(Chdr,"%6ho%6ho%6ho%6ho%6ho%6ho%6ho%6ho%11lo%6ho%11lo%s",
&Hdr.h_magic, &Hdr.h_dev, &Hdr.h_ino, &Hdr.h_mode,
&Hdr.h_uid, &Hdr.h_gid, &Hdr.h_nlink, &Hdr.h_rdev,
&Longtime, &Hdr.h_namesize, &Longfile, &Hdr.h_name);LongtimeundLongfilesind äquivalent zuHdr.h_mtimeundHdr.h_filesize). Der Inhalt jeder Datei und andere Elemente, die die Datei beschreiben, werden in einem Element des Strukturarrays mit unterschiedlicher Länge aufgezeichnet.
Anmerkung: Dateien, die mit dem Flag -c gespeichert wurden, müssen mit dem Flag -c wiederhergestellt werden.
Wenn das Flag -c des Befehls Cpio nicht verwendet wird, enthält die Headerstruktur die folgenden Felder:
| Element | Beschreibung |
|---|---|
| h_magic | Enthält die Konstante 070707 (oder 0x71c7). |
| h_dev | Die Einheit, die einen Verzeichniseintrag für diese Datei enthält. |
| h_ino | I-Knotennummer, die die Eingabedatei für das Dateisystem identifiziert. |
| h_mode | Modus der Eingabedatei gemäß Definition in der Datei mode.h . |
| h_uid | Die Benutzer-ID des Eigners der Eingabedatei. |
| h_gid | Die Gruppen-ID des Eigners der Eingabedatei. |
Bei fernen Dateien enthalten diese Felder die ID nach der umgekehrten Umsetzung:
| Element | Beschreibung |
|---|---|
| h_nlink | Die Anzahl der Links, die mit der Eingabedatei verbunden sind. |
| h_rdev | Die ID der fernen Einheit, der die Eingabedatei entnommen wird. |
| h_mtime | Die Uhrzeit, zu der die Daten zuletzt geändert wurden. Bei fernen Dateien enthält dieses Feld die Zeit auf dem Server. Diese Zeit kann von der Subroutine Creat, Fclearf, Abschneiden, MKnod, OpenX, Pipe, UTimeoder Schreibmodus geändert werden. |
| h_namesize | Länge des Pfadnamens, einschließlich des abschließenden Nullbyte. |
| h_filesize | Die Länge der Datei in Byte. Dies ist die Länge des Datenabschnitts, der auf die Headerstruktur folgt. |
| h_name | Auf null endende Pfadangabe Die Länge des Pfadnamens, einschließlich des Nullbyte, wird durch die Variable N angegeben, wobei N gleich((h_namesize % 2) + h_namesize). Das heißt, die Variable N ist gleich derh_namesizeFeld, wenn dieh_namesizeFeld ist gerade. Wenn dash_namesizeFeld ist ungerade, die Variable N ist gleich demh_namesizeFeld + 1. |
Der letzte Datensatz des Archivs enthält immer den NamenTRAILER!!!.Spezielle Dateien, Verzeichnisse und der Trailer werden mit dem h_filesizeFeld gleich 0.