mkstr(1)
NAME
mkstr - create an error message file by massaging C source
SYNOPSIS
mkstr [-] messagefile prefix file ...
DESCRIPTION
- The mkstr utility creates files containing error messages
- extracted from
C source, and restructures the same C source, to utilize the - created
error message file. The intent of mkstr was to reduce the - size of large
programs and reduce swapping (see BUGS section below). - The mkstr utility processes each of the specified files,
- placing a
restructured version of the input in a file whose name con - sists of the
specified prefix and the original name. A typical usage of - mkstr is
mkstr pistrings xx *.c- This command causes all the error messages from the C source
- files in the
current directory to be placed in the file pistrings and re - structured
copies of the sources to be placed in files whose names are - prefixed with
xx. - Options:
- - Error messages are placed at the end of the speci
- fied message
- file for recompiling part of a large mkstred pro
- gram.
- The mkstr utility finds error messages in the source by
- searching for the
string `error("' in the input stream. Each time it occurs, - the C string
starting at the `"' is stored in the message file followed - by a null
character and a new-line character; The new source is re - structured with
lseek(2) pointers into the error message file for retrieval.
char efilname = "/usr/lib/pi_strings";
int efil = -1;- error(a1, a2, a3, a4)
{char buf[256];if (efil < 0) {efil = open(efilname, 0);
if (efil < 0)err(1, "%s", efilname);}
if (lseek(efil, (off_t)a1, SEEK_SET) < 0read(efil, buf, 256) <= 0)err(1, "%s", efilname);printf(buf, a2, a3, a4);}
SEE ALSO
HISTORY
A mkstr utility appeared in 3.0BSD.
BUGS
- The mkstr utility was intended for the limited architecture
- of the PDP 11
family. Very few programs actually use it. The memory sav - ings are negligible in modern computers.
- BSD November 1, 2002