1987-03-11 15:07:29 +00:00
|
|
|
.\" $Header$
|
1991-10-01 12:18:39 +00:00
|
|
|
.TH ARCH 5 "$Revision$"
|
1987-03-11 15:07:29 +00:00
|
|
|
.ad
|
|
|
|
.SH NAME
|
|
|
|
arch \- archive (library) file format
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B #include <arch.h>
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The archive command
|
|
|
|
.I arch
|
|
|
|
is used to combine several files into
|
|
|
|
one.
|
|
|
|
Archives are used mainly as libraries to be searched
|
|
|
|
by the EM assembler/linker em_ass(6) or the universal
|
|
|
|
assembler/linker uni_ass(6).
|
|
|
|
.PP
|
|
|
|
A file produced by
|
|
|
|
.I arch
|
|
|
|
has a magic number 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:
|
|
|
|
.RS
|
|
|
|
.PP
|
|
|
|
.nf
|
|
|
|
.ta \w'#define 'u +\w'ARMAG 'u
|
1991-11-15 14:41:41 +00:00
|
|
|
.so ../../h/arch.h
|
1987-03-11 15:07:29 +00:00
|
|
|
.fi
|
|
|
|
.RE
|
|
|
|
.LP
|
|
|
|
The name is a null-terminated string;
|
|
|
|
The sizes of the other entries are determined as follows:
|
|
|
|
long's are 4 bytes in PDP-11 order, int are 2 bytes, low order
|
|
|
|
byte first, char's are 1 byte.
|
|
|
|
The date is in the
|
|
|
|
form of
|
|
|
|
.IR time (2);
|
|
|
|
the user ID and group ID are numbers; the mode is a bit pattern
|
|
|
|
per
|
|
|
|
.IR chmod (2);
|
|
|
|
the size is counted in bytes.
|
|
|
|
.PP
|
|
|
|
Each file begins on a even offset;
|
|
|
|
a null byte is inserted between files if necessary.
|
|
|
|
Nevertheless the size given reflects the
|
|
|
|
actual size of the file exclusive of padding.
|
|
|
|
.PP
|
|
|
|
Notice there is no provision for empty areas in an archive
|
|
|
|
file.
|
|
|
|
.SH FILES
|
|
|
|
~em/h/arch.h
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
arch(1), em_ass(6), uni_ass(6)
|
|
|
|
.SH BUGS
|
|
|
|
Coding user and group IDs as characters is a botch.
|