ar - Archive (library) file format
#include <ar.h>
The archive command (ar) combines several files into one.
Archives are used mainly as libraries to be searched by
the link-editor ld.
A file produced by ar has 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 the include file are:
COMMON ARCHIVE FORMAT
ARCHIVE File Organization:
_______________________________________________
|__________ARCHIVE_MAGIC_STRING_______________|
|__________ARCHIVE_FILE_MEMBER_1______________| |
| | Archive File Header "ar_hdr" |
|.............................................| |
Member Contents | | 1.
External symbol directory | | 2. Text file
| |_____________________________________________|
|________ARCHIVE_FILE_MEMBER_2________________| |
"ar_hdr" |
|.............................................| |
Member Contents (.o or text file) |
|_____________________________________________| | .
. . | | . .
. | | . . . |
|_____________________________________________|
|________ARCHIVE_FILE_MEMBER_n________________| |
"ar_hdr" |
|.............................................| |
Member Contents |
|_____________________________________________|
The name is a blank-padded string. The ar_fmag field contains
ARFMAG to help verify the presence of a header. The
other fields are left-adjusted, blank-padded numbers.
They are decimal except for ar_mode, which is octal. The
date is the modification date of the file at the time of
its insertion into the archive.
Each file begins on an even (0 mod 2) boundary; a new-line
is inserted between files if necessary. Nevertheless the
size given reflects the actual size of the file exclusive
of padding.
There is no provision for empty areas in an archive file.
The encoding of the header is portable across machines.
If an archive contains printable files, the archive itself
is printable.
File names lose trailing blanks. Most software dealing
with archives takes even an included blank as a name terminator.
ar(1), ld(1), nm(1) delim off
ar(4)
[ Back ] |