diff options
Diffstat (limited to 'archivers/libarchive/files/doc/html/cpio.5.html')
-rw-r--r-- | archivers/libarchive/files/doc/html/cpio.5.html | 1191 |
1 files changed, 422 insertions, 769 deletions
diff --git a/archivers/libarchive/files/doc/html/cpio.5.html b/archivers/libarchive/files/doc/html/cpio.5.html index 1980eaa2ae1..88fc8fb0aa7 100644 --- a/archivers/libarchive/files/doc/html/cpio.5.html +++ b/archivers/libarchive/files/doc/html/cpio.5.html @@ -1,769 +1,422 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sun Mar 14 02:49:16 2010 -%%DocumentNeededResources: font Times-Roman -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 60 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Roman -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Roman@0 ENC0/Times-Roman RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<html>)0 12 Q(<head>)0 24 Q(<title>)36 36 Q -(October 5, 2007 CPIO 5)74.5 48 Q(</title>)36 72 Q 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<style type="te)36 12 Q(xt/css">)-.15 E(<!--)36 -24 Q(body { mar)72 36 Q(gin-left:4%; })-.18 E(H1, H2, H3, H4, H5 {)72 48 -Q(color: maroon; padding: 4pt; mar)108 60 Q(gin-left: -4%;)-.18 E -(border: solid; border)108 72 Q(-width: thin; width: 100%;)-.2 E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(background: r)108 12 Q(gb\(204,204,255\))-.18 E -(})72 24 Q(-->)36 36 Q(</style>)36 48 Q(</head>)0 60 Q -(<body bgcolor="#FFFFFF" te)0 72 Q(xt="#000000">)-.15 E 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h3 id="N)36 12 Q(AME">)-.35 E -.35(NA)36 24 S -(ME).35 E(</h3>)36 36 Q(<b>cpio</b>)0 48 Q 2.5(-f)0 60 S -(ormat of cpio archi)-2.5 E .3 -.15(ve \214)-.25 H(les).15 E -(<h3 id="DESCRIPTION">)36 72 Q 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(DESCRIPTION)36 12 Q(</h3>)36 24 Q(The)0 36 Q -(<b>cpio</b>)0 48 Q(archi)0 60 Q .3 -.15(ve f)-.25 H(ormat collects an) -.15 E 2.5(yn)-.15 G(umber of \214les, directories, and other)-2.5 E -(\214le system objects \(symbolic links, de)0 72 Q -(vice nodes, etc.\) into a single)-.25 E 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(stream of bytes.)0 12 Q(<h4 id="General F)36 24 -Q(ormat">)-.15 E(General F)36 36 Q(ormat)-.15 E(</h4>)36 48 Q -(Each \214le system object in a)0 60 Q(<b>cpio</b>)0 72 Q 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(archi)0 12 Q .3 -.15(ve c)-.25 H -(omprises a header record with basic numeric metadata).15 E(follo)0 24 Q -(wed by the full pathname of the entry and the \214le data.)-.25 E -(The header record stores a series of inte)0 36 Q(ger v)-.15 E -(alues that generally)-.25 E(follo)0 48 Q 2.5(wt)-.25 G(he \214elds in) --2.5 E(<i></i><i>struct</i><i> stat</i>.)0 60 Q(\(See)0 72 Q 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<a href="../html2/stat.html">stat\(2\)</a>)0 12 -Q(for details.\))0 24 Q(The v)0 36 Q(ariants dif)-.25 E -(fer primarily in ho)-.25 E 2.5(wt)-.25 G(he)-2.5 E 2.5(ys)-.15 G -(tore those inte)-2.5 E(gers)-.15 E(\(binary)0 48 Q 2.5(,o)-.65 G -(ctal, or he)-2.5 E(xadecimal\).)-.15 E(The header is follo)0 60 Q -(wed by the pathname of the)-.25 E -(entry \(the length of the pathname is stored in the header\))0 72 Q 0 -Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(and an)0 12 Q 2.5<798c>-.15 G(le data.)-2.5 E -(The end of the archi)0 24 Q .3 -.15(ve i)-.25 H 2.5(si).15 G -(ndicated by a special record with)-2.5 E(the pathname)0 36 Q -.74(``)0 -48 S(TRAILER!!!').74 E('.)-.74 E(<h4 id="PWB format">)36 60 Q -(PWB format)36 72 Q 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</h4>)36 12 Q(XXX An)0 24 Q 2.5(yd)-.15 G -(ocumentation of the original PWB/UNIX 1.0 format? XXX)-2.5 E -(<h4 id="Old Binary F)36 36 Q(ormat">)-.15 E(Old Binary F)36 48 Q(ormat) --.15 E(</h4>)36 60 Q(The old binary)0 72 Q 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<b>cpio</b>)0 12 Q -(format stores numbers as 2-byte and 4-byte binary v)0 24 Q(alues.)-.25 -E(Each entry be)0 36 Q(gins with a header in the follo)-.15 E -(wing format:)-.25 E(<dl compact><dt><dd>)0 48 Q(<code>)0 60 Q(<pre>)0 -72 Q 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(struct header_old_cpio {)0 12 Q(unsigned short) -20 24 Q(c_magic;)7.5 E(unsigned short)20 36 Q(c_de)7.5 E(v;)-.25 E -(unsigned short)20 48 Q(c_ino;)7.5 E(unsigned short)20 60 Q(c_mode;)7.5 -E(unsigned short)20 72 Q(c_uid;)7.5 E 0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(unsigned short)20 12 Q(c_gid;)7.5 E -(unsigned short)20 24 Q(c_nlink;)7.5 E(unsigned short)20 36 Q(c_rde)7.5 -E(v;)-.25 E(unsigned short)36 48 Q(c_mtime[2];)7.5 E(unsigned short)20 -60 Q(c_namesize;)7.5 E(unsigned short)36 72 Q(c_\214lesize[2];)7.5 E 0 -Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(};)0 12 Q(</pre>)0 24 Q(</code>)0 36 Q(</dl>)0 -48 Q(<p>)36 60 Q(The)0 72 Q 0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<i></i><i>unsigned</i><i> short</i>)0 12 Q -(\214elds here are 16-bit inte)0 24 Q(ger v)-.15 E(alues; the)-.25 E -(<i></i><i>unsigned</i><i> int</i>)0 36 Q(\214elds are 32-bit inte)0 48 -Q(ger v)-.15 E(alues.)-.25 E(The \214elds are as follo)0 60 Q(ws)-.25 E -(<dl compact>)0 72 Q 0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p><dt><i></i><i>magic</i><dd>)0 12 Q(The inte)0 -24 Q(ger v)-.15 E(alue octal 070707.)-.25 E(This v)0 36 Q -(alue can be used to determine whether this archi)-.25 E .3 -.15(ve i) --.25 H(s).15 E(written with little-endian or big-endian inte)0 48 Q -(gers.)-.15 E(<p><dt><i></i><i>de)0 60 Q(v</i><i></i>,<i> ino</i><dd>) --.25 E(The de)0 72 Q(vice and inode numbers from the disk.)-.25 E 0 Cg -EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(These are used by programs that read)0 12 Q -(<b>cpio</b>)0 24 Q(archi)0 36 Q -.15(ve)-.25 G 2.5(st).15 G 2.5(od)-2.5 -G(etermine when tw)-2.5 E 2.5(oe)-.1 G(ntries refer to the same \214le.) --2.5 E(Programs that synthesize)0 48 Q(<b>cpio</b>)0 60 Q(archi)0 72 Q --.15(ve)-.25 G 2.5(ss).15 G(hould be careful to set these to distinct v) --2.5 E(alues for each entry)-.25 E(.)-.65 E 0 Cg EP -%%Page: 18 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p><dt><i></i><i>mode</i><dd>)0 12 Q -(The mode speci\214es both the re)0 24 Q -(gular permissions and the \214le type.)-.15 E(It consists of se)0 36 Q --.15(ve)-.25 G(ral bit \214elds as follo).15 E(ws:)-.25 E(<dl compact>)0 -48 Q(<dt>0170000<dd>)0 60 Q(This masks the \214le type bits.)0 72 Q 0 Cg -EP -%%Page: 19 19 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<dt>0140000<dd>)0 12 Q(File type v)0 24 Q -(alue for sock)-.25 E(ets.)-.1 E(<dt>0120000<dd>)0 36 Q(File type v)0 48 -Q(alue for symbolic links.)-.25 E -.15(Fo)0 60 S 2.5(rs).15 G -(ymbolic links, the link body is stored as \214le data.)-2.5 E -(<dt>0100000<dd>)0 72 Q 0 Cg EP -%%Page: 20 20 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(File type v)0 12 Q(alue for re)-.25 E -(gular \214les.)-.15 E(<dt>0060000<dd>)0 24 Q(File type v)0 36 Q -(alue for block special de)-.25 E(vices.)-.25 E(<dt>0040000<dd>)0 48 Q -(File type v)0 60 Q(alue for directories.)-.25 E(<dt>0020000<dd>)0 72 Q -0 Cg EP -%%Page: 21 21 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(File type v)0 12 Q -(alue for character special de)-.25 E(vices.)-.25 E(<dt>0010000<dd>)0 24 -Q(File type v)0 36 Q(alue for named pipes or FIFOs.)-.25 E -(<dt>0004000<dd>)0 48 Q(SUID bit.)0 60 Q(<dt>0002000<dd>)0 72 Q 0 Cg EP -%%Page: 22 22 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(SGID bit.)0 12 Q(<dt>0001000<dd>)0 24 Q(Stick)0 -36 Q 2.5(yb)-.15 G(it.)-2.5 E(On some systems, this modi\214es the beha) -0 48 Q(vior of e)-.2 E -.15(xe)-.15 G(cutables and/or directories.).15 E -(<dt>0000777<dd>)0 60 Q(The lo)0 72 Q(wer 9 bits specify read/write/e) --.25 E -.15(xe)-.15 G(cute permissions).15 E 0 Cg EP -%%Page: 23 23 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(for w)0 12 Q(orld, group, and user follo)-.1 E -(wing standard POSIX con)-.25 E -.15(ve)-.4 G(ntions.).15 E(</dl>)0 24 Q -(<p><dt><i></i><i>uid</i><i></i>,<i> gid</i><dd>)0 36 Q -(The numeric user id and group id of the o)0 48 Q(wner)-.25 E(.)-.55 E -(<p><dt><i></i><i>nlink</i><dd>)0 60 Q -(The number of links to this \214le.)0 72 Q 0 Cg EP -%%Page: 24 24 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Directories al)0 12 Q -.1(wa)-.1 G(ys ha).1 E .3 --.15(ve a v)-.2 H(alue of at least tw)-.1 E 2.5(oh)-.1 G(ere.)-2.5 E -(Note that hardlink)0 24 Q(ed \214les include \214le data with e)-.1 E --.15(ve)-.25 G(ry cop).15 E 2.5(yi)-.1 G 2.5(nt)-2.5 G(he archi)-2.5 E --.15(ve)-.25 G(.).15 E(<p><dt><i></i><i>rde)0 36 Q(v</i><dd>)-.25 E -.15 -(Fo)0 48 S 2.5(rb).15 G(lock special and character special entries,)-2.5 -E(this \214eld contains the associated de)0 60 Q(vice number)-.25 E(.) --.55 E -.15(Fo)0 72 S 2.5(ra).15 G -(ll other entry types, it should be set to zero by writers)-2.5 E 0 Cg -EP -%%Page: 25 25 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(and ignored by readers.)0 12 Q -(<p><dt><i></i><i>mtime</i><dd>)0 24 Q -(Modi\214cation time of the \214le, indicated as the number)0 36 Q -(of seconds since the start of the epoch,)0 48 Q -(00:00:00 UTC January 1, 1970.)0 60 Q(The four)0 72 Q(-byte inte)-.2 E -(ger is stored with the most-signi\214cant 16 bits \214rst)-.15 E 0 Cg -EP -%%Page: 26 26 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(follo)0 12 Q -(wed by the least-signi\214cant 16 bits.)-.25 E(Each of the tw)0 24 Q -2.5(o1)-.1 G 2.5(6b)-2.5 G(it v)-2.5 E(alues are stored in machine-nati) --.25 E .3 -.15(ve b)-.25 H(yte order).15 E(.)-.55 E -(<p><dt><i></i><i>namesize</i><dd>)0 36 Q -(The number of bytes in the pathname that follo)0 48 Q(ws the header) --.25 E(.)-.55 E(This count includes the trailing NUL byte.)0 60 Q -(<p><dt><i></i><i>\214lesize</i><dd>)0 72 Q 0 Cg EP -%%Page: 27 27 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(The size of the \214le.)0 12 Q -(Note that this archi)0 24 Q .3 -.15(ve f)-.25 H(ormat is limited to).15 -E(four gig)0 36 Q(abyte \214le sizes.)-.05 E(See)0 48 Q -(<i></i><i>mtime</i>)0 60 Q(abo)0 72 Q .3 -.15(ve f)-.15 H -(or a description of the storage of four).15 E(-byte inte)-.2 E(gers.) --.15 E 0 Cg EP -%%Page: 28 28 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</dl>)0 12 Q(<p>)36 24 Q -(The pathname immediately follo)0 36 Q(ws the \214x)-.25 E(ed header) --.15 E(.)-.55 E(If the)0 48 Q(<b></b><b>namesize</b>)0 60 Q -(is odd, an additional NUL byte is added after the pathname.)0 72 Q 0 Cg -EP -%%Page: 29 29 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(The \214le data is then appended, padded with NUL)0 12 Q(bytes to an e) -0 24 Q -.15(ve)-.25 G 2.5(nl).15 G(ength.)-2.5 E(<p>)36 36 Q(Hardlink)0 -48 Q(ed \214les are not gi)-.1 E -.15(ve)-.25 G 2.5(ns).15 G -(pecial treatment;)-2.5 E -(the full \214le contents are included with each cop)0 60 Q 2.5(yo)-.1 G -2.5(ft)-2.5 G(he)-2.5 E(\214le.)0 72 Q 0 Cg EP -%%Page: 30 30 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h4 id="Portable ASCII F)36 12 Q(ormat">)-.15 E -(Portable ASCII F)36 24 Q(ormat)-.15 E(</h4>)36 36 Q -1.11(Ve)2.5 48 S -(rsion 2 of the Single UNIX Speci\214cation \(`)1.11 E(`SUSv2')-.74 E -('\))-.74 E(standardized an ASCII v)0 60 Q -(ariant that is portable across all)-.25 E(platforms.)0 72 Q 0 Cg EP -%%Page: 31 31 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(It is commonly kno)0 12 Q(wn as the)-.25 E -.74 -(``)0 24 S(old character').74 E(')-.74 E(format or as the)0 36 Q -.74 -(``)0 48 S(odc').74 E(')-.74 E(format.)0 60 Q -(It stores the same numeric \214elds as the old binary format, b)0 72 Q -(ut)-.2 E 0 Cg EP -%%Page: 32 32 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -(represents them as 6-character or 11-character octal v)0 12 Q(alues.) --.25 E(<dl compact><dt><dd>)0 24 Q(<code>)0 36 Q(<pre>)0 48 Q -(struct cpio_odc_header {)0 60 Q 7.5(char c_magic[6];)20 72 R 0 Cg EP -%%Page: 33 33 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF 7.5(char c_de)20 12 R(v[6];)-.25 E 7.5 -(char c_ino[6];)20 24 R 7.5(char c_mode[6];)20 36 R 7.5(char c_uid[6];) -20 48 R 7.5(char c_gid[6];)20 60 R 7.5(char c_nlink[6];)20 72 R 0 Cg EP -%%Page: 34 34 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF 7.5(char c_rde)20 12 R(v[6];)-.25 E 7.5 -(char c_mtime[11];)20 24 R 7.5(char c_namesize[6];)20 36 R 7.5 -(char c_\214lesize[11];)20 48 R(};)0 60 Q(</pre>)0 72 Q 0 Cg EP -%%Page: 35 35 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</code>)0 12 Q(</dl>)0 24 Q(<p>)36 36 Q -(The \214elds are identical to those in the old binary format.)0 48 Q -(The name and \214le body follo)0 60 Q 2.5(wt)-.25 G(he \214x)-2.5 E -(ed header)-.15 E(.)-.55 E(Unlik)0 72 Q 2.5(et)-.1 G -(he old binary format, there is no additional padding)-2.5 E 0 Cg EP -%%Page: 36 36 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(after the pathname or \214le contents.)0 12 Q -(If the \214les being archi)0 24 Q -.15(ve)-.25 G 2.5(da).15 G -(re themselv)-2.5 E(es entirely ASCII, then)-.15 E(the resulting archi)0 -36 Q .3 -.15(ve w)-.25 H(ill be entirely ASCII, e).15 E(xcept for the) --.15 E(NUL byte that terminates the name \214eld.)0 48 Q(<h4 id="Ne)36 -60 Q 2.5(wA)-.25 G(SCII F)-2.5 E(ormat">)-.15 E(Ne)36 72 Q 2.5(wA)-.25 G -(SCII F)-2.5 E(ormat)-.15 E 0 Cg EP -%%Page: 37 37 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</h4>)36 12 Q(The "ne)0 24 Q -(w" ASCII format uses 8-byte he)-.25 E(xadecimal \214elds for)-.15 E -(all numbers and separates de)0 36 Q -(vice numbers into separate \214elds)-.25 E -(for major and minor numbers.)0 48 Q(<dl compact><dt><dd>)0 60 Q(<code>) -0 72 Q 0 Cg EP -%%Page: 38 38 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<pre>)0 12 Q(struct cpio_ne)0 24 Q(wc_header {) --.25 E 7.5(char c_magic[6];)20 36 R 7.5(char c_ino[8];)20 48 R 7.5 -(char c_mode[8];)20 60 R 7.5(char c_uid[8];)20 72 R 0 Cg EP -%%Page: 39 39 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF 7.5(char c_gid[8];)20 12 R 7.5(char c_nlink[8];) -20 24 R 7.5(char c_mtime[8];)20 36 R 7.5(char c_\214lesize[8];)20 48 R -7.5(char c_de)20 60 R(vmajor[8];)-.25 E 7.5(char c_de)20 72 R -(vminor[8];)-.25 E 0 Cg EP -%%Page: 40 40 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF 7.5(char c_rde)20 12 R(vmajor[8];)-.25 E 7.5 -(char c_rde)20 24 R(vminor[8];)-.25 E 7.5(char c_namesize[8];)20 36 R -7.5(char c_check[8];)20 48 R(};)0 60 Q(</pre>)0 72 Q 0 Cg EP -%%Page: 41 41 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</code>)0 12 Q(</dl>)0 24 Q(<p>)36 36 Q -(Except as speci\214ed belo)0 48 Q 1.3 -.65(w, t)-.25 H -(he \214elds here match those speci\214ed).65 E -(for the old binary format abo)0 60 Q -.15(ve)-.15 G(.).15 E -(<dl compact>)0 72 Q 0 Cg EP -%%Page: 42 42 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p><dt><i></i><i>magic</i><dd>)0 12 Q -(The string)0 24 Q -.74(``)0 36 S(070701').74 E('.)-.74 E -(<p><dt><i></i><i>check</i><dd>)0 48 Q(This \214eld is al)0 60 Q -.1(wa) --.1 G(ys set to zero by writers and ignored by readers.).1 E(See the ne) -0 72 Q(xt section for more details.)-.15 E 0 Cg EP -%%Page: 43 43 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</dl>)0 12 Q(<p>)36 24 Q(The pathname is follo)0 -36 Q(wed by NUL bytes so that the total size)-.25 E(of the \214x)0 48 Q -(ed header plus pathname is a multiple of four)-.15 E(.)-.55 E(Lik)0 60 -Q -.25(ew)-.1 G -(ise, the \214le data is padded to a multiple of four bytes.).25 E -(Note that this format supports only 4 gig)0 72 Q(abyte \214les \(unlik) --.05 E 2.5(et)-.1 G(he)-2.5 E 0 Cg EP -%%Page: 44 44 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(older ASCII format, which supports 8 gig)0 12 Q -(abyte \214les\).)-.05 E(<p>)36 24 Q(In this format, hardlink)0 36 Q -(ed \214les are handled by setting the)-.1 E -(\214lesize to zero for each entry e)0 48 Q(xcept the last one that)-.15 -E(appears in the archi)0 60 Q -.15(ve)-.25 G(.).15 E(<h4 id="Ne)36 72 Q -2.5(wC)-.25 G(RC F)-2.5 E(ormat">)-.15 E 0 Cg EP -%%Page: 45 45 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(Ne)36 12 Q 2.5(wC)-.25 G(RC F)-2.5 E(ormat)-.15 -E(</h4>)36 24 Q(The CRC format is identical to the ne)0 36 Q 2.5(wA)-.25 -G(SCII format described)-2.5 E(in the pre)0 48 Q(vious section e)-.25 E -(xcept that the magic \214eld is set)-.15 E(to)0 60 Q -.74(``)0 72 S -(070702').74 E(')-.74 E 0 Cg EP -%%Page: 46 46 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(and the)0 12 Q(<i></i><i>check</i>)0 24 Q -(\214eld is set to the sum of all bytes in the \214le data.)0 36 Q -(This sum is computed treating all bytes as unsigned v)0 48 Q(alues)-.25 -E(and using unsigned arithmetic.)0 60 Q -(Only the least-signi\214cant 32 bits of the sum are stored.)0 72 Q 0 Cg -EP -%%Page: 47 47 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h4 id="HP v)36 12 Q(ariants">)-.25 E(HP v)36 24 -Q(ariants)-.25 E(</h4>)36 36 Q(The)0 48 Q(<b>cpio</b>)0 60 Q -(implementation distrib)0 72 Q(uted with HPUX used XXXX b)-.2 E -(ut stored)-.2 E 0 Cg EP -%%Page: 48 48 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(de)0 12 Q(vice numbers dif)-.25 E(ferently XXX.) --.25 E(<h4 id="Other Extensions and V)36 24 Q(ariants">)-1.11 E -(Other Extensions and V)36 36 Q(ariants)-1.11 E(</h4>)36 48 Q -(Sun Solaris uses additional \214le types to store e)0 60 Q -(xtended \214le)-.15 E(data, including A)0 72 Q(CLs and e)-.4 E -(xtended attrib)-.15 E(utes, as special)-.2 E 0 Cg EP -%%Page: 49 49 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(entries in cpio archi)0 12 Q -.15(ve)-.25 G(s.) -.15 E(<p>)36 24 Q(XXX Others? XXX)0 36 Q(<h3 id="B)36 48 Q(UGS">)-.1 E --.1(BU)36 60 S(GS).1 E(</h3>)36 72 Q 0 Cg EP -%%Page: 50 50 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(The)0 12 Q -.74(``)0 24 S(CRC').74 E(')-.74 E -(format is mis-named, as it uses a simple checksum and)0 36 Q(not a c)0 -48 Q(yclic redundanc)-.15 E 2.5(yc)-.15 G(heck.)-2.5 E(<p>)36 60 Q -(The old binary format is limited to 16 bits for user id,)0 72 Q 0 Cg EP -%%Page: 51 51 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(group id, de)0 12 Q(vice, and inode numbers.) --.25 E(It is limited to 4 gig)0 24 Q(abyte \214le sizes.)-.05 E(<p>)36 -36 Q(The old ASCII format is limited to 18 bits for)0 48 Q -(the user id, group id, de)0 60 Q(vice, and inode numbers.)-.25 E -(It is limited to 8 gig)0 72 Q(abyte \214le sizes.)-.05 E 0 Cg EP -%%Page: 52 52 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p>)36 12 Q(The ne)0 24 Q 2.5(wA)-.25 G -(SCII format is limited to 4 gig)-2.5 E(abyte \214le sizes.)-.05 E(<p>) -36 36 Q(None of the cpio formats store user or group names,)0 48 Q -(which are essential when mo)0 60 Q(ving \214les between systems with) --.15 E(dissimilar user or group numbering.)0 72 Q 0 Cg EP -%%Page: 53 53 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<p>)36 12 Q -(Especially when writing older cpio v)0 24 Q -(ariants, it may be necessary)-.25 E(to map actual de)0 36 Q -(vice/inode v)-.25 E(alues to synthesized v)-.25 E(alues that)-.25 E -(\214t the a)0 48 Q -.25(va)-.2 G(ilable \214elds.).25 E -.4(Wi)0 60 S -(th v).4 E(ery lar)-.15 E(ge \214lesystems, this may be necessary e)-.18 -E -.15(ve)-.25 G 2.5(nf).15 G(or)-2.5 E(the ne)0 72 Q(wer formats.)-.25 -E 0 Cg EP -%%Page: 54 54 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h3 id="SEE ALSO">)36 12 Q(SEE ALSO)36 24 Q -(</h3>)36 36 Q(<a href="../html1/cpio.html">cpio\(1\)</a>,)0 48 Q -(<a href="../html5/tar)0 60 Q(.html">tar\(5\)</a>)-.55 E(<h3 id="ST)36 -72 Q(AND)-.93 E(ARDS">)-.4 E 0 Cg EP -%%Page: 55 55 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(ST)36 12 Q(AND)-.93 E(ARDS)-.4 E(</h3>)36 24 Q -(The)0 36 Q(<b>cpio</b>)0 48 Q -(utility is no longer a part of POSIX or the Single Unix Standard.)0 60 -Q(It last appeared in)0 72 Q 0 Cg EP -%%Page: 56 56 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -1.11(Ve)2.5 12 S -(rsion 2 of the Single UNIX Speci\214cation \(`)1.11 E(`SUSv2')-.74 E -('\) .)-.74 E(It has been supplanted in subsequent standards by)0 24 Q -(<a href="../html1/pax.html">pax\(1\)</a>.)0 36 Q(The portable ASCII fo\ -rmat is currently part of the speci\214cation for the)0 48 Q -(<a href="../html1/pax.html">pax\(1\)</a>)0 60 Q(utility)0 72 Q(.)-.65 E -0 Cg EP -%%Page: 57 57 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(<h3 id="HIST)36 12 Q(OR)-.18 E(Y">)-.65 E(HIST) -36 24 Q(OR)-.18 E(Y)-.65 E(</h3>)36 36 Q(The original cpio utility w)0 -48 Q(as written by Dick Haight)-.1 E(while w)0 60 Q(orking in A)-.1 E -(T&T')-1.11 E 2.5(sU)-.55 G(nix Support Group.)-2.5 E -(It appeared in 1977 as part of PWB/UNIX 1.0, the)0 72 Q 0 Cg EP -%%Page: 58 58 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF -.74(``)0 12 S(Programmer').74 E 2.5(sW)-.55 G -(ork Bench')-3.3 E(')-.74 E(deri)0 24 Q -.15(ve)-.25 G 2.5(df).15 G(rom) --2.5 E -1.11(Ve)0 36 S(rsion 6 <code>A)1.11 E(T&T UNIX</code>)-1.11 E -(that w)0 48 Q(as used internally at A)-.1 E(T&T)-1.11 E(.)-.74 E -(Both the old binary and old character formats were in use)0 60 Q -(by 1980, according to the System III source released)0 72 Q 0 Cg EP -%%Page: 59 59 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(by SCO under their)0 12 Q -.74(``)0 24 S -(Ancient Unix')-.06 E(')-.74 E(license.)0 36 Q(The character format w)0 -48 Q(as adopted as part of)-.1 E(IEEE Std 1003.1-1988 \(`)2.5 60 Q -(`<font size="-1">POSIX</font>.1')-.74 E('\) .)-.74 E(XXX when did "ne)0 -72 Q(wc" appear?)-.25 E(Who in)5 E -.15(ve)-.4 G(nted it?).15 E -(When did HP come out with their v)5 E 2.5(ariant? When)-.25 F -(did Sun introduce A)2.5 E(CLs and e)-.4 E(xtended attrib)-.15 E -(utes? XXX)-.2 E 0 Cg EP -%%Page: 60 60 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(</body>)0 12 Q(</html>)0 24 Q 0 Cg EP -%%Trailer -end -%%EOF +<!-- Creator : groff version 1.19.2 --> +<!-- CreationDate: Sun Mar 14 19:50:26 2010 --> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" +"http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta name="generator" content="groff -Thtml, see www.gnu.org"> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<meta name="Content-Style" content="text/css"> +<style type="text/css"> + p { margin-top: 0; margin-bottom: 0; } + pre { margin-top: 0; margin-bottom: 0; } + table { margin-top: 0; margin-bottom: 0; } +</style> +<title></title> +</head> +<body> + +<hr> + + +<p valign="top">CPIO(5) FreeBSD File Formats Manual +CPIO(5)</p> + +<p style="margin-top: 1em" valign="top"><b>NAME</b></p> + +<p style="margin-left:8%;"><b>cpio</b> — format of +cpio archive files</p> + + +<p style="margin-top: 1em" valign="top"><b>DESCRIPTION</b></p> + +<p style="margin-left:8%;">The <b>cpio</b> archive format +collects any number of files, directories, and other file +system objects (symbolic links, device nodes, etc.) into a +single stream of bytes.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>General +Format</b> <br> +Each file system object in a <b>cpio</b> archive comprises a +header record with basic numeric metadata followed by the +full pathname of the entry and the file data. The header +record stores a series of integer values that generally +follow the fields in <i>struct stat</i>. (See stat(2) for +details.) The variants differ primarily in how they store +those integers (binary, octal, or hexadecimal). The header +is followed by the pathname of the entry (the length of the +pathname is stored in the header) and any file data. The end +of the archive is indicated by a special record with the +pathname ‘‘TRAILER!!!’’.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>PWB +format</b> <br> +XXX Any documentation of the original PWB/UNIX 1.0 format? +XXX</p> + +<p style="margin-left:8%; margin-top: 1em"><b>Old Binary +Format</b> <br> +The old binary <b>cpio</b> format stores numbers as 2-byte +and 4-byte binary values. Each entry begins with a header in +the following format:</p> + +<p style="margin-left:17%; margin-top: 1em">struct +header_old_cpio { <br> +unsigned short c_magic; <br> +unsigned short c_dev; <br> +unsigned short c_ino; <br> +unsigned short c_mode; <br> +unsigned short c_uid; <br> +unsigned short c_gid; <br> +unsigned short c_nlink; <br> +unsigned short c_rdev;</p> + +<table width="100%" border=0 rules="none" frame="void" + cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="29%"></td> +<td width="13%"> + + +<p valign="top">unsigned short c_mtime[2];</p></td> +<td width="58%"> +</td> +</table> + +<p style="margin-left:17%;">unsigned short c_namesize;</p> + +<table width="100%" border=0 rules="none" frame="void" + cellspacing="0" cellpadding="0"> +<tr valign="top" align="left"> +<td width="29%"></td> +<td width="71%"> + + +<p valign="top">unsigned short c_filesize[2];</p></td> +</table> + +<p style="margin-left:17%;">};</p> + +<p style="margin-left:8%; margin-top: 1em">The <i>unsigned +short</i> fields here are 16-bit integer values; the +<i>unsigned int</i> fields are 32-bit integer values. The +fields are as follows</p> + +<p style="margin-top: 1em" valign="top"><i>magic</i></p> + +<p style="margin-left:20%; margin-top: 1em">The integer +value octal 070707. This value can be used to determine +whether this archive is written with little-endian or +big-endian integers.</p> + +<p style="margin-top: 1em" valign="top"><i>dev</i>, +<i>ino</i></p> + +<p style="margin-left:20%;">The device and inode numbers +from the disk. These are used by programs that read +<b>cpio</b> archives to determine when two entries refer to +the same file. Programs that synthesize <b>cpio</b> archives +should be careful to set these to distinct values for each +entry.</p> + +<p style="margin-top: 1em" valign="top"><i>mode</i></p> + +<p style="margin-left:20%; margin-top: 1em">The mode +specifies both the regular permissions and the file type. It +consists of several bit fields as follows:</p> + +<p valign="top">0170000</p> + +<p style="margin-left:34%; margin-top: 1em">This masks the +file type bits.</p> + +<p valign="top">0140000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for sockets.</p> + +<p valign="top">0120000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for symbolic links. For symbolic links, the link body is +stored as file data.</p> + +<p valign="top">0100000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for regular files.</p> + +<p valign="top">0060000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for block special devices.</p> + +<p valign="top">0040000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for directories.</p> + +<p valign="top">0020000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for character special devices.</p> + +<p valign="top">0010000</p> + +<p style="margin-left:34%; margin-top: 1em">File type value +for named pipes or FIFOs.</p> + +<p valign="top">0004000</p> + +<p style="margin-left:34%; margin-top: 1em">SUID bit.</p> + +<p valign="top">0002000</p> + +<p style="margin-left:34%; margin-top: 1em">SGID bit.</p> + +<p valign="top">0001000</p> + +<p style="margin-left:34%; margin-top: 1em">Sticky bit. On +some systems, this modifies the behavior of executables +and/or directories.</p> + +<p valign="top">0000777</p> + +<p style="margin-left:34%; margin-top: 1em">The lower 9 +bits specify read/write/execute permissions for world, +group, and user following standard POSIX conventions.</p> + +<p style="margin-top: 1em" valign="top"><i>uid</i>, +<i>gid</i></p> + +<p style="margin-left:20%;">The numeric user id and group +id of the owner.</p> + +<p style="margin-top: 1em" valign="top"><i>nlink</i></p> + +<p style="margin-left:20%; margin-top: 1em">The number of +links to this file. Directories always have a value of at +least two here. Note that hardlinked files include file data +with every copy in the archive.</p> + +<p style="margin-top: 1em" valign="top"><i>rdev</i></p> + +<p style="margin-left:20%; margin-top: 1em">For block +special and character special entries, this field contains +the associated device number. For all other entry types, it +should be set to zero by writers and ignored by readers.</p> + +<p style="margin-top: 1em" valign="top"><i>mtime</i></p> + +<p style="margin-left:20%; margin-top: 1em">Modification +time of the file, indicated as the number of seconds since +the start of the epoch, 00:00:00 UTC January 1, 1970. The +four-byte integer is stored with the most-significant 16 +bits first followed by the least-significant 16 bits. Each +of the two 16 bit values are stored in machine-native byte +order.</p> + + +<p style="margin-top: 1em" valign="top"><i>namesize</i></p> + +<p style="margin-left:20%;">The number of bytes in the +pathname that follows the header. This count includes the +trailing NUL byte.</p> + + +<p style="margin-top: 1em" valign="top"><i>filesize</i></p> + +<p style="margin-left:20%;">The size of the file. Note that +this archive format is limited to four gigabyte file sizes. +See <i>mtime</i> above for a description of the storage of +four-byte integers.</p> + +<p style="margin-left:8%; margin-top: 1em">The pathname +immediately follows the fixed header. If the <b>namesize</b> +is odd, an additional NUL byte is added after the pathname. +The file data is then appended, padded with NUL bytes to an +even length.</p> + +<p style="margin-left:8%; margin-top: 1em">Hardlinked files +are not given special treatment; the full file contents are +included with each copy of the file.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>Portable +ASCII Format</b> <br> +Version 2 of the Single UNIX Specification +(‘‘SUSv2’’) standardized an ASCII +variant that is portable across all platforms. It is +commonly known as the ‘‘old +character’’ format or as the +‘‘odc’’ format. It stores the same +numeric fields as the old binary format, but represents them +as 6-character or 11-character octal values.</p> + +<p style="margin-left:17%; margin-top: 1em">struct +cpio_odc_header { <br> +char c_magic[6]; <br> +char c_dev[6]; <br> +char c_ino[6]; <br> +char c_mode[6]; <br> +char c_uid[6]; <br> +char c_gid[6]; <br> +char c_nlink[6]; <br> +char c_rdev[6]; <br> +char c_mtime[11]; <br> +char c_namesize[6]; <br> +char c_filesize[11]; <br> +};</p> + +<p style="margin-left:8%; margin-top: 1em">The fields are +identical to those in the old binary format. The name and +file body follow the fixed header. Unlike the old binary +format, there is no additional padding after the pathname or +file contents. If the files being archived are themselves +entirely ASCII, then the resulting archive will be entirely +ASCII, except for the NUL byte that terminates the name +field.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>New ASCII +Format</b> <br> +The "new" ASCII format uses 8-byte hexadecimal +fields for all numbers and separates device numbers into +separate fields for major and minor numbers.</p> + +<p style="margin-left:17%; margin-top: 1em">struct +cpio_newc_header { <br> +char c_magic[6]; <br> +char c_ino[8]; <br> +char c_mode[8]; <br> +char c_uid[8]; <br> +char c_gid[8]; <br> +char c_nlink[8]; <br> +char c_mtime[8]; <br> +char c_filesize[8]; <br> +char c_devmajor[8]; <br> +char c_devminor[8]; <br> +char c_rdevmajor[8]; <br> +char c_rdevminor[8]; <br> +char c_namesize[8]; <br> +char c_check[8]; <br> +};</p> + +<p style="margin-left:8%; margin-top: 1em">Except as +specified below, the fields here match those specified for +the old binary format above.</p> + +<p style="margin-top: 1em" valign="top"><i>magic</i></p> + +<p style="margin-left:20%; margin-top: 1em">The string +‘‘070701’’.</p> + +<p style="margin-top: 1em" valign="top"><i>check</i></p> + +<p style="margin-left:20%; margin-top: 1em">This field is +always set to zero by writers and ignored by readers. See +the next section for more details.</p> + +<p style="margin-left:8%; margin-top: 1em">The pathname is +followed by NUL bytes so that the total size of the fixed +header plus pathname is a multiple of four. Likewise, the +file data is padded to a multiple of four bytes. Note that +this format supports only 4 gigabyte files (unlike the older +ASCII format, which supports 8 gigabyte files).</p> + +<p style="margin-left:8%; margin-top: 1em">In this format, +hardlinked files are handled by setting the filesize to zero +for each entry except the last one that appears in the +archive.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>New CRC +Format</b> <br> +The CRC format is identical to the new ASCII format +described in the previous section except that the magic +field is set to ‘‘070702’’ and the +<i>check</i> field is set to the sum of all bytes in the +file data. This sum is computed treating all bytes as +unsigned values and using unsigned arithmetic. Only the +least-significant 32 bits of the sum are stored.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>HP +variants</b> <br> +The <b>cpio</b> implementation distributed with HPUX used +XXXX but stored device numbers differently XXX.</p> + +<p style="margin-left:8%; margin-top: 1em"><b>Other +Extensions and Variants</b> <br> +Sun Solaris uses additional file types to store extended +file data, including ACLs and extended attributes, as +special entries in cpio archives.</p> + +<p style="margin-left:8%; margin-top: 1em">XXX Others? +XXX</p> + +<p style="margin-top: 1em" valign="top"><b>BUGS</b></p> + +<p style="margin-left:8%;">The +‘‘CRC’’ format is mis-named, as it +uses a simple checksum and not a cyclic redundancy +check.</p> + +<p style="margin-left:8%; margin-top: 1em">The old binary +format is limited to 16 bits for user id, group id, device, +and inode numbers. It is limited to 4 gigabyte file +sizes.</p> + +<p style="margin-left:8%; margin-top: 1em">The old ASCII +format is limited to 18 bits for the user id, group id, +device, and inode numbers. It is limited to 8 gigabyte file +sizes.</p> + +<p style="margin-left:8%; margin-top: 1em">The new ASCII +format is limited to 4 gigabyte file sizes.</p> + +<p style="margin-left:8%; margin-top: 1em">None of the cpio +formats store user or group names, which are essential when +moving files between systems with dissimilar user or group +numbering.</p> + +<p style="margin-left:8%; margin-top: 1em">Especially when +writing older cpio variants, it may be necessary to map +actual device/inode values to synthesized values that fit +the available fields. With very large filesystems, this may +be necessary even for the newer formats.</p> + +<p style="margin-top: 1em" valign="top"><b>SEE ALSO</b></p> + +<p style="margin-left:8%;">cpio(1), tar(5)</p> + + +<p style="margin-top: 1em" valign="top"><b>STANDARDS</b></p> + +<p style="margin-left:8%;">The <b>cpio</b> utility is no +longer a part of POSIX or the Single Unix Standard. It last +appeared in Version 2 of the Single UNIX Specification +(‘‘SUSv2’’). It has been supplanted +in subsequent standards by pax(1). The portable ASCII format +is currently part of the specification for the pax(1) +utility.</p> + +<p style="margin-top: 1em" valign="top"><b>HISTORY</b></p> + +<p style="margin-left:8%;">The original cpio utility was +written by Dick Haight while working in AT&T’s +Unix Support Group. It appeared in 1977 as part of PWB/UNIX +1.0, the ‘‘Programmer’s Work +Bench’’ derived from Version 6 AT&T +UNIX that was used internally at AT&T. Both the old +binary and old character formats were in use by 1980, +according to the System III source released by SCO under +their ‘‘Ancient Unix’’ license. The +character format was adopted as part of IEEE Std 1003.1-1988 +(‘‘POSIX.1’’). XXX when did +"newc" appear? Who invented it? When did HP come +out with their variant? When did Sun introduce ACLs and +extended attributes? XXX</p> + + +<p style="margin-left:8%; margin-top: 1em">FreeBSD 9.0 +October 5, 2007 FreeBSD 9.0</p> +<hr> +</body> +</html> |