[comp.std.unix] tar or cpio? N.048

std-unix@ut-sally.UUCP (Moderator, John Quarterman) (05/11/87)

N.048	April 15, 1987	``a proposal for a cpio format to be added to
Chapter 10,'' Lorraine C. Kevra, AT&T.

Secretary, IEEE Standards Board:

The attached is a proposal for a cpio format to be added to Chapter 10
(Data Interchange Format) of the POSIX Standard.

						Lorraine C. Kevra

NAME
	cpio - format of cpio archive

DESCRIPTION
	The *header* structure, when the -c option of *cpio*(1) 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 word];
		} Hdr;

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

		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,
			&Longtime,&Hdr.h_namesize,&Longfile,&Hdr.h_name);

	*Longtime* and *Longfile* are equivalent to *Hdr.h_mtime* and
	*Hdr.h_filesize*, respectively.  The contents of each file are
	recorded in an element of the array of varying length structures,
	*archive*, together with other items describeing the file.
	Every instance of *h_magic* contains the constant 070707
	(octal).  The items *h_dev* through *h_mtime* have meanings
	explained in *stat*(2).  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.

SEE ALSO
	stat(2) in the *Programmer's Reference Manual*.
	cpio(1), find(1) in the *User's Reference Manual*.

Volume-Number: Volume 11, Number 14