Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MKSTR(1)		  BSD General Commands Manual		      MKSTR(1)

     mkstr -- create an	error message file by massaging	C source

     mkstr [-] mesgfile	prefix file ...

     The mkstr utility creates a file containing error messages	extracted from
     C source, and restructures	the same C source, to utilize the created er-
     ror 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	re-
     structured	version	of the input in	a file whose name consists 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 restructured
     copies of the sources to be placed	in files whose names are prefixed with


     -	     Error messages are	placed at the end of the specified message
	     file for recompiling part of a large mkstred program.

     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 restructured	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)	< 0 ||
		       read(efil, buf, 256) <= 0)
			   err(1, "%s",	efilname);
		   printf(buf, a2, a3, a4);

     gencat(1),	xstr(1), lseek(2)

     The mkstr utility first appeared in 1BSD.

     Bill Joy and Chuck	Haley, 1977.

     The mkstr utility was intended for	the limited architecture of the	PDP 11
     family.  Very few programs	actually use it.  The memory savings are neg-
     ligible in	modern computers.

BSD				 June 6, 2015				   BSD


Want to link to this manual page? Use this URL:

home | help