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

FreeBSD Manual Pages

  
 
  

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

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

SYNOPSIS
     mkstr [-] messagefile prefix file ...

DESCRIPTION
     Mkstr 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).

     Mkstr processes each of the specified files, placing a restructured ver-
     sion 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
     xx.

     Options:

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

     mkstr finds error messages	in the source by searching for the string
     `error("' in the input stream.  Each time it occurs, the C	string start-
     ing 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) {
	   oops:
				   perror(efilname);
				   exit	1 ;
			   }
		   }
		   if (lseek(efil, (long) a1, 0)  read(efil, buf, 256) <= 0)
			   goto	oops;
		   printf(buf, a2, a3, a4);
	   }

SEE ALSO
     lseek(2), xstr(1)

HISTORY
     Mkstr appeared in 3.0BSD.

BUGS
     mkstr was intended	for the	limited	architecture of	the PDP	11 family.
     Very few programs actually	use it.	The pascal interpreter,	pi(1) and the
     editor, ex(1) are two programs that are built this	way.  It is not	an
     efficient method, the error messages should be stored in the program
     text.

FreeBSD	11.1			 June 6, 1993			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=mkstr&sektion=1&manpath=FreeBSD+2.0.5-RELEASE>

home | help