forsyth20121205-174063a80cc13 years agoHistory
98 lines · 2.1 KB · Text
RawDownload
.TH AR 10.6.SH NAMEar \- archive (library) file format.SH SYNOPSIS.B #include <ar.h>.SH DESCRIPTIONThe archive command.IR iar (10.1)is used to combine several files intoone.Archives are used mainly as libraries to be searchedby the loaders.IR 2l (10.1).I et al..PPA file produced by.I arhas a magic string at the start,followed by the constituent files, each preceded by a file header.The magic number and header layout as described in theinclude file are:.IP.EX.ec %#define ARMAG   "!<arch>\en"#define SARMAG  8 #define ARFMAG  "`\en" struct ar_hdr {    char    name[16];    char    date[12];    char    uid[6];    char    gid[6];    char    mode[8];    char    size[10];    char    fmag[2];};#define SAR_HDR 60.ec \.EE.LPThe.B nameis a blank-padded string.The.L fmagfield contains.L ARFMAGto help verify the presence of a header.The other fields are left-adjusted, blank-padded numbers.They are decimal except for.LR mode ,which is octal.The date is the modification date of the file (see.IR sys-stat (2))at the time of its insertion into the archive.The mode is the low 9 bits of the file permission mode.The length of the header is.LR SAR_HDR .Because the.L ar_hdrstructure is padded in an architecture-dependent manner,the structure should never be read or written as a unit;instead, each field should be read or written independently..PPEach file begins on an even (0 mod 2) boundary;a newline is inserted between files if necessary.Nevertheless .B sizereflects theactual size of the file exclusive of padding..PPWhen all members of an archive are object files ofthe same architecture,.B arautomatically adds an extra file, named.BR __.SYMDEF ,as the first member of the archive.  This filecontains an index used by the loaders to locate allexternally defined text and data symbols in the archive..PPThere is no provision for empty areas in an archivefile..SH "SEE ALSO".IR iar (10.1), .IR 2l (10.1), .IR inm (10.1),.IR sys-stat (2).SH BUGSThe.B uidand.B gidfields are unused.They provide compatibility with Unix.I arformat.