cpio(4) [osf1 man page]
cpio(4) Kernel Interfaces Manual cpio(4) 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); The Longtime and Longfile are equivalent to Hdr.h_mtime and Hdr.h_filesize, respec- tively. The contents of each file are 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(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_file- size equal to zero. RELATED INFORMATION
cpio(1), find(1), stat(2) delim off cpio(4)
Check Out this Related Man Page
archives(4) File Formats archives(4) NAME
archives - device header DESCRIPTION
/* Magic numbers */ #define CMN_ASC 0x070701 /* Cpio Magic Number for -c header */ #define CMN_BIN 070707 /* Cpio Magic Number for Binary header */ #define CMN_BBS 0143561 /* Cpio Magic Number for Byte-Swap header */ #define CMN_CRC 0x070702 /* Cpio Magic Number for CRC header */ #define CMS_ASC "070701" /* Cpio Magic String for -c header */ #define CMS_CHR "070707" /* Cpio Magic String for odc header */ #define CMS_CRC "070702" /* Cpio Magic String for CRC header */ #define CMS_LEN 6 /* Cpio Magic String length */ /* Various header and field lengths */ #define CHRSZ 76 /* -H odc size minus filename field */ #define ASCSZ 110 /* -c and CRC hdr size minus filename field */ #define TARSZ 512 /* TAR hdr size */ #define HNAMLEN 256 /* maximum filename length for binary and odc headers */ #define EXPNLEN 1024 /* maximum filename length for -c and CRC headers */ #define HTIMLEN 2 /* length of modification time field */ #define HSIZLEN 2 /* length of file size field */ /* cpio binary header definition */ struct hdr_cpio { short h_magic, /* magic number field */ h_dev; /* file system of file */ ushort_t h_ino, /* inode of file */ h_mode, /* modes of file */ h_uid, /* uid of file */ h_gid; /* gid of file */ short h_nlink, /* number of links to file */ h_rdev, /* maj/min numbers for special files */ h_mtime[HTIMLEN], /* modification time of file */ h_namesize, /* length of filename */ h_filesize[HSIZLEN]; /* size of file */ char h_name[HNAMLEN]; /* filename */ } ; /* cpio -H odc header format */ struct c_hdr { char c_magic[CMS_LEN], c_dev[6], c_ino[6], c_mode[6], c_uid[6], c_gid[6], c_nlink[6], c_rdev[6], c_mtime[11], c_namesz[6], c_filesz[11], c_name[HNAMLEN]; } ; /* -c and CRC header format */ struct Exp_cpio_hdr { char E_magic[CMS_LEN], E_ino[8], E_mode[8], E_uid[8], E_gid[8], E_nlink[8], E_mtime[8], E_filesize[8], E_maj[8], E_min[8], E_rmaj[8], E_rmin[8], E_namesize[8], E_chksum[8], E_name[EXPNLEN]; } ; /* Tar header structure and format */ #define TBLOCK 512 /* length of tar header and data blocks */ #define TNAMLEN 100 /* maximum length for tar file names */ #define TMODLEN 8 /* length of mode field */ #define TUIDLEN 8 /* length of uid field */ #define TGIDLEN 8 /* length of gid field */ #define TSIZLEN 12 /* length of size field */ #define TTIMLEN 12 /* length of modification time field */ #define TCRCLEN 8 /* length of header checksum field */ /* tar header definition */ union tblock { char dummy[TBLOCK]; struct header { char t_name[TNAMLEN]; /* name of file */ char t_mode[TMODLEN]; /* mode of file */ char t_uid[TUIDLEN]; /* uid of file */ char t_gid[TGIDLEN]; /* gid of file */ char t_size[TSIZLEN]; /* size of file in bytes */ char t_mtime[TTIMLEN]; /* modification time of file */ char t_chksum[TCRCLEN]; /* checksum of header */ char t_typeflag; /* flag to indicate type of file */ char t_linkname[TNAMLEN]; /* file this file is linked with */ char t_magic[6]; /* magic string always "ustar" */ char t_version[2]; /* version strings always "00" */ char t_uname[32]; /* owner of file in ASCII */ char t_gname[32]; /* group of file in ASCII */ char t_devmajor[8]; /* major number for special files */ char t_devminor[8]; /* minor number for special files */ char t_prefix[155]; /* pathname prefix */ } tbuf; } /* volcopy tape label format and structure */ #define VMAGLEN 8 #define VVOLLEN 6 #define VFILLEN 464 struct volcopy_label { char v_magic[VMAGLEN], v_volume[VVOLLEN], v_reels, v_reel; long v_time, v_length, v_dens, v_reelblks, /* u370 added field */ v_blksize, /* u370 added field */ v_nblocks; /* u370 added field */ char v_fill[VFILLEN]; long v_offset; /* used with -e and -reel options */ int v_type; /* does tape have nblocks field? */ } ; SunOS 5.10 3 Jul 1990 archives(4)