CPIO(5)

NAME
cpio - format of cpio archive

DESCRIPTION

The old format header structure, when the -c option of cpio is not used, is:

    struct {
    	short	h_magic,
    		h_dev;
    	ushort	h_ino,
    		h_mode,
    		h_uid,
    		h_gid;
    	short	h_nlink,
    		h_rdev,
    		h_mtime[2],
    		h_namesize,
    		h_filesize[2];
    	char	h_name[h_namesize rounded to a word];
    } Hdr;

The byte order here is that of the machine on which the tape was written. If the tape is being read on a machine with a different byte order, you have to use swab(3) after reading the header. You can determine what byte order the tape was written with by examining the h_magic field; if it is equal to 0143561 (octal), which is the standard magic number 070707 (octal) with the bytes swapped, the tape was written in a byte order opposite to that of the machine on which it is being read. If you are producing a tape to be read on a machine with the opposite byte order to that of the machine on which it is being produced, you can use swap before writing the header.

When the -c option is used, the header information is described by the statement below:

	sscanf(Chdr, "%6o%6o%6o%6o%6o%6o%6o%6o%11lo%6o%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,
		&Hdr.h_mtime, &Hdr.h_namesize, &Hdr.h_filesize, &Hdr.h_name);

Longtime and Longfile are equivalent to Hdr.h_mtime and Hdr.h_filesize, respectively. The contents of each file is recorded in an element of the array of varying length structures, archive, together with other items describing the file. Every instance of h_magic contains the constant 070707 (octal). The items h_dev through h_mtime have meanings explained in stat(2V). The length of the null-terminated path name h_name, including the null byte, is given by h_namesize.

The last record of the archive always contains the name TRAILER!!!. Special files, directories, and the trailer, are recorded with h_filesize equal to zero. Symbolic links are recorded similarly to regular files, with the ``contents'' of the file being the name of the file the symbolic link points to.

SEE ALSO
cpio(1), find(1), stat(2V), swab(3)