Unix/Linux Go Back    


BSD 2.11 - man page for mkstr (bsd section 1)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


MKSTR(1)										 MKSTR(1)

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

SYNOPSIS
       mkstr [ - ] messagefile prefix file ...

DESCRIPTION
       Mkstr  is  used	to  create files of error messages.  Its use can make programs with large
       numbers of error diagnostics much smaller, and reduce system overhead in running the  pro-
       gram as the error messages do not have to be constantly swapped in and out.

       Mkstr  will  process  each of the specified files, placing a massaged version of the input
       file in a file whose name consists of the specified prefix and the original name.  A typi-
       cal usage of mkstr would be

	    mkstr pistrings xx *.c

       This  command  would  cause  all the error messages from the C source files in the current
       directory to be placed in the file pistrings and processed copies of the source for  these
       files to be placed in files whose names are prefixed with xx.

       To  process  the error messages in the source to the message file mkstr keys on the string
       `error("' in the input stream.  Each time it occurs, the C string starting at the  `"'  is
       placed in the message file followed by a null character and a new-line character; the null
       character terminates the message so it can be easily used  when	retrieved,  the  new-line
       character  makes  it  possible to sensibly cat the error message file to see its contents.
       The massaged copy of the input file then contains a lseek pointer into the file which  can
       be used to retrieve the message, i.e.:

	      char efilname[] =  "/usr/share/pascal/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);
	      }

       The  optional - causes the error messages to be placed at the end of the specified message
       file for recompiling part of a large mkstred program.

SEE ALSO
       lseek(2), xstr(1)

3rd Berkeley Distribution		 October 22, 1996				 MKSTR(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 08:01 AM.