2007年3月22日星期四

CPIO 文件格式

http://www.mkssoftware.com/docs/man4/cpio.4.asp



DESCRIPTION

This document describes the format of archives read and written by the cpio utility. A cpio archive consists of the concatenation of one or more member files. Each member file contains a header (as described later in this reference page) optionally followed by file contents as indicated in the header. The end of the archive is indicated by another header describing an (empty) file named TRAILER!!.

There are two types of cpio archives, differing only in the style of the header. ASCII archives have totally printable header information; thus, if the files being archived are also ASCII files, the whole archive is ASCII. By default, cpio writes archives with binary headers.

The information in ASCII archive headers is stored in fixed-width, octal (base 8) numbers zero-padded on the left. Table 1 gives the order and field width for the information in the ASCII header.

Field Width Field Name Meaning

6 magic magic number "070707"
6 dev device where file resides
6 ino I-number of file
6 mode file mode
6 uid owner user ID
6 gid owner group ID
6 nlink number of links to file
6 rdev device major/minor for special file
11 mtime modify time of file
6 namesize length of file name
11 filesize length of file to follow

Table 1: ASCII Header Format for cpio File

Most of this information is compatible with that returned by the UNIX stat() function; see also stat. After this information, namesize bytes of path name is stored. namesize includes the null byte of the end of the path name. After this, filesize bytes of the file contents are recorded.

Binary headers contain the same information in 2 byte (short) and 4 byte (long) integers as shown in Table 2.

Bytes Field Name

2 magic
2 dev
2 ino
2 mode
2 uid
2 gid
2 nlink
2 rdev
4 mtime
2 namesize
4 filesize

Table 2: Binary Header Format for cpio File

After this information comes the file name (with namesize rounded up to the nearest 2 byte boundary). Then the file contents appear as in the ASCII archive. The byte ordering of the 2 and 4 byte integers in the binary format is machine dependent and thus portability of this format is not easily guaranteed.


PORTABILITY

cpio archives are fully compatible between UNIX and Windows systems. For maximum portability among different system architectures, only the ASCII archive format should be used.

Because the Windows file systems lack many features of the UNIX file system, much of the header information is meaningless.


AVAILABILITY

MKS Toolkit for System Administrators
MKS Toolkit for Developers
MKS Toolkit for Interoperability
MKS Toolkit for Professional Developers
MKS Toolkit for Enterprise Developers
MKS Toolkit for Enterprise Developers 64-Bit Edition


SEE ALSO

Commands:
cpio, pax, tar

File Formats:
tar

Miscellaneous:
stat

没有评论: