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.