|
|
1.1 root 1: .TH AR 5
2: .CT 1 lib_obj
3: .SH NAME
4: ar \- archive (library) file format
5: .SH SYNOPSIS
6: .B #include <ar.h>
7: .SH DESCRIPTION
8: The archive command
9: .IR ar (1)
10: is used to combine several files into
11: one.
12: Archives are used mainly as libraries to be searched
13: by the link-editor
14: .I ld.
15: .PP
16: A file produced by
17: .I ar
18: has a magic string at the start,
19: followed by the constituent files, each preceded by a file header.
20: The magic number and header layout as described in the
21: include file are:
22: .PP
23: .EX
24: .ta \w'#define 'u +\w'SAR_HDR 'u
25: .ec %
26: #define ARMAG "!<arch>\n"
27: #define SARMAG 8
28:
29: #define ARFMAG "`\n"
30:
31: struct ar_hdr {
32: char ar_name[16];
33: char ar_date[12];
34: char ar_uid[6];
35: char ar_gid[6];
36: char ar_mode[8];
37: char ar_size[10];
38: char ar_fmag[2];
39: };
40: #define SAR_HDR 60
41: .ec \
42: .EE
43: .LP
44: The name is a blank-padded string.
45: The
46: .L ar_fmag
47: field contains
48: .L ARFMAG
49: to help verify the presence of a header.
50: The other fields are left-adjusted, blank-padded numbers.
51: They are decimal except for
52: .LR ar_mode ,
53: which is octal.
54: The date is the modification date of the file
55: at the time of its insertion into the archive.
56: The length of the header is
57: .LR SAR_HDR .
58: Because
59: .L struct ar_hdr
60: may be padded on some machines,
61: .L SAR_HDR
62: should be used in preference to
63: .L sizeof(struct ar_hdr)
64: when reading and writing file headers.
65: .PP
66: Each file begins on an even (0 mod 2) boundary;
67: a newline is inserted between files if necessary.
68: Nevertheless
69: .B ar_size
70: reflects the
71: actual size of the file exclusive of padding.
72: .PP
73: There is no provision for empty areas in an archive
74: file.
75: .PP
76: If an archive contains only printable files, the archive itself
77: is printable.
78: .SH "SEE ALSO"
79: .IR ar (1),
80: .IR ld (1),
81: .IR nm (1)
82: .SH BUGS
83: File names lose trailing blanks.
84: .br
85: Most software that deals with archives takes
86: an embedded blank as a name terminator.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.