Manual Page Result
0
Command: xstr | Section: 1 | Source: Digital UNIX | File: xstr.1.gz
xstr(1) General Commands Manual xstr(1)
NAME
xstr - Extracts strings from C programs to implement shared strings
SYNOPSIS
xstr [-c] [file|-]
The xstr command maintains a file called strings into which strings in
component parts of a large program are hashed.
OPTIONS
Extracts strings from the specified file.
DESCRIPTION
The strings extracted by xstr are replaced with references to this ar-
ray. This serves to implement shared constant strings, most useful if
they are also read-only.
The following command extracts the strings from the C source in file,
replacing string references by expressions of the form (&xstr[number])
for some number. xstr -c file
The xstr command uses file as input; the resulting C text is placed in
the file x.c to then be compiled. The strings from this file are ap-
pended to the strings file if they are not there already. Repeated
strings and strings that are suffixes of existing strings do not cause
changes to the file.
If a string is a suffix of another string in the file, but the shorter
string is seen first by xstr, both strings are placed in the file
strings.
After all components of a large program are compiled, a file xs.c de-
claring the common xstr space can be created by a command of the fol-
lowing form: xstr
Compile and load this xs.c file with the rest of the program. Some C
compilers may, by default, put strings in a read-only text section.
The xstr command can also be used on a single file. The following com-
mand creates files x.c and xs.c as before, without using or affecting a
strings file in the same directory. xstr file
It may be useful to run xstr after the C preprocessor if any macro def-
initions yield strings or if there is conditional code that contains
strings that may not be needed. The xstr command reads from its stan-
dard input when the argument - (dash) is given. An appropriate command
sequence for running xstr after the C preprocessor is as follows: cc -E
file.c | xstr -c - cc -c x.c mv x.o file.o
The xstr command does not touch the file strings unless new items are
added, thus make can avoid remaking xs.o unless truly necessary.
EXAMPLES
To extract the strings from the C source in the file.c parameter, re-
placing string references by expressions of the form (&xstr[number]),
enter: xstr -c file
An appropriate declaration of the xstr array is prepended to
file. The resulting C text is placed in the file x.c, to then
be compiled. To declare the common xstr array space in the xs.c
file, enter: xstr
FILES
File that contains the extracted strings. Modified C source. C source
for definition of array xstr. Temporary file when the xstr command
does not touch strings.
SEE ALSO
Commands: mkstr(1)
xstr(1)