Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mkstr(1) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

lseek(2)

xstr(1)



      MKSTR(1)                GENIX Programmer's Manual                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.  A typical  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/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;



      Printed 11/16/83                                                        1





      MKSTR(1)                GENIX Programmer's Manual                MKSTR(1)



                     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)

      AUTHORS
           William Joy and Charles Haley











































      Printed 11/16/83                                                        2



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