Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mkstr(1) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lseek(2)



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 program 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.

     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 new-line character and a null 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 an
     lseek(2) pointer into the file which can be used to retrieve the message,
     i.e.:

          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);
          }

     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.







                                                                        Page 1





MKSTR(1)                                                              MKSTR(1)



EXAMPLE
     If the current directory has files "a.c" and "b.c", then

          mkstr exs x *.c

     would create a new file "exs" which holds all the error messages
     extracted from the source files "a.c" and "b.c", as well as two new
     source files "xa.c" and "xb.c" which no longer contains the extracted
     error messages.

SEE ALSO
     lseek(2).

BUGS
     All the arguments except the name of the file to be processed are
     unnecessary.

AUTHORS
     Bill Joy and Charles Haley.




































                                                                        Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026