mkstr(1)mkstr(1)NAMEmkstr - extract error messages from C source into a file
SYNOPSIS
messagefile prefix file...
DESCRIPTION
examines a C program and creates a file containing error message
strings used by the program. Programs with many error diagnostics can
be made much smaller by referring to places in the file, and reduce
system overhead in running the program.
processes each of the specified files, placing a revised version of
each in a file whose name consists of the specified prefix concatenated
in front of the original name. A typical usage of would be
This command would cause all the error messages from the C source files
in the current directory to be placed in the file and revised copies of
the source for these files to be placed in files whose names are pre‐
fixed with
When processing the error messages in the source for transfer to the
message file, searches for the string in the input file. Each time it
is encountered, the C string starting after the leading quote is placed
in the message file, followed by a null character and a newline charac‐
ter. The null character terminates the message so that it can be eas‐
ily used when retrieved, and the newline character makes it possible to
conveniently list the error message file (using etc.; see cat(1) and
more(1)) to review its contents.
The modified copy of the input file is identical to the original,
except that each occurrence of any string that was moved to the error
message file is replaced by an offset pointer usable by to retrieve the
message.
If the command line includes the optional extracted error messages are
placed at the end of the specified message file (append) instead of
overwriting it. This enables you to process individual files that are
part of larger programs that have been previously processed by without
reprocessing all the files.
All functions used by the original program whose names end in that also
can take a constant string as their first argument should be rewritten
so that they search for the string in the error message file.
For example, a program based on the previous example usage would resem‐
ble the following:
EXTERNAL INFLUENCES
Environment Variables
determines the interpretation of comments and string literals as sin‐
gle- and/or multibyte characters.
If is not specified in the environment or is set to the empty string,
the value of is used as a default for each unspecified or empty vari‐
able. If is not specified or is set to the empty string, a default of
"C" (see lang(5)) is used instead of If any internationalization vari‐
able contains an invalid setting, behaves as if all internationaliza‐
tion variables are set to "C". See environ(5).
International Code Set Support
Single- and multibyte character code sets are supported within file
names, comments, and string literals.
WARNINGS
Strings in calls to functions whose names end in notably may be
replaced with offsets by
Calls to error functions whose first argument is not a string constant
are left unmodified without warning.
SEE ALSOxstr(1), lseek(2), perror(3C).
mkstr(1)