*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> xstr (1)              
Title
Content
Arch
Section
 

XSTR(1)

Contents


NAME    [Toc]    [Back]

     xstr - extract strings from C programs to  implement  shared
strings

SYNOPSIS    [Toc]    [Back]

     xstr [-cv] [-l array] [-] [file ...]

DESCRIPTION    [Toc]    [Back]

     xstr  maintains  a file strings into which strings in component parts of a
     large program are hashed.  These strings are  replaced  with
references to
     this  common area.  This serves to implement shared constant
strings, most
     useful if they are also read-only.

     The options are as follows:

     -           Cause xstr to read from the standard input.

     -c          xstr will extract the strings from the C  source
file or the
                 standard  input (-), replacing string references
by expressions
 of the form (&xstr[number]) for some  number.  An appropriate
  declaration  of xstr is prepended to the
file.  The resulting
 C text is placed in  the  file  x.c,  to
then be compiled.
  The strings from this file are placed in
the strings
                 database if they are not there already.  Repeated strings and
                 strings  which  are suffixes of existing strings
do not cause
                 changes to the database.

     -l array    Specify the named array in program references to
abstracted
                 strings.  The default array name is ``xstr''.

     -v          Be verbose.

     After  all components of a large program have been compiled,
a file xs.c
     declaring the common xstr space can be created by a  command
of the form:

           $ xstr

     The  file  xs.c  should then be compiled and loaded with the
rest of the
     program.  If possible,  the  array  can  be  made  read-only
(shared) saving
     space and swap overhead.

     xstr  can also be used on a single file.  The following command creates
     files x.c and xs.c as before, without using or affecting any
strings file
     in the same directory:

           $ xstr name

     It may be useful to run xstr after the C preprocessor if any
macro definitions
 yield strings or if there is conditional code  which
contains
     strings  which  may not, in fact, be needed.  An appropriate
command sequence
 for running xstr after the C preprocessor is:

           $ cc -E name.c | xstr -c -
           $ cc -c x.c
           $ mv x.o name.o

     xstr does not touch the file strings unless  new  items  are
added, so that
     make(1) can avoid remaking xs.o unless truly necessary.

FILES    [Toc]    [Back]

     strings     database of strings
     x.c         massaged C source
     xs.c        C source for definition of array ``xstr''
     /tmp/xs*     temporary file when ``xstr name'' doesn't touch
strings

SEE ALSO    [Toc]    [Back]

      
      
     mkstr(1)

HISTORY    [Toc]    [Back]

     The xstr command appeared in 3.0BSD.

BUGS    [Toc]    [Back]

     If a string is a suffix of another string in  the  database,
but the shorter
  string is seen first by xstr both strings will be placed
in the
     database, when just placing the longer one there will do.

OpenBSD     3.6                        December     30,      1993
[ Back ]
 Similar pages
Name OS Title
xstr Tru64 Extracts strings from C programs to implement shared strings
strtok Linux extract tokens from strings
exstr IRIX extract strings from source files
strcmp NetBSD compare strings
strcat FreeBSD concatenate strings
strsep FreeBSD separate strings
strcat NetBSD concatenate strings
strcmp Linux compare two strings
strncpy FreeBSD copy strings
strsep OpenBSD separate strings
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service