tail head cat sleep
QR code linking to this page

manページ  — XSTR

名称

xstr – 共有文字列を実現するために C 言語プログラムから文字列を抽出する

内容

書式


xstr [-c] [-] [-v] [file]

解説

xstr ユーティリティは、 巨大なプログラムの文字列部分を保持するデータベースファイル strings をメンテナンスします。プログラム中の文字列は共通文字列 エリアへの参照に置換されます。これにより、共有文字列定数が実現できます。 これは特に read-only な文字列に有効です。

オプションは、以下のものが利用可能です:
- 標準入力からソースを読み込みます。
-c
  指定された C 言語ソースまたは標準入力から文字列を抽出し、 文字列を (&xstr[number]) 形式に変換し、適当な number を割り当てます。 適切な xstr の宣言がファイルの先頭に挿入されます。変換した C 言語ソース はファイル x.c に出力されます。文字列は文字列データベースファイル strings に格納されます。 すでに同じ文字列がデータベース中に存在している場合、 および既に存在する文字列のサフィックスの場合、 データベースは変更されません。
-v
  冗長モード。

プログラムの全ソースファイルをコンパイルした後、 共通文字列領域を宣言するファイル xs.c を、以下のようにコマンドを実行して作成できます。

xstr

このあとでファイル xs.c をコンパイルし、他のオブジェクトファイルとリンク します。 xs.c 内の文字列配列を read-only にできるならば、必要な領域とスワップ によるオーバヘッドを少なくすることができます。

xstr はまた、1 つのファイルにのみ適用することもできます。次のコマンド

xstr name

によって、同じディレクトリ内のファイル strings を変更したり、参照することなく、 x.c と xs.c を 作成します。

C 言語プリプロセッサのあとで xstr を実行するのが便利な場合、あるいはそうすることが必要な場合があります。 マクロによって文字列が生成される時などがそうです。 このときは以下のようなコマンド列を実行します。

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

xstr ユーティリティは、新しい文字列を追加する必要がないかぎり、ファイル strings を更新しません。このため、 make(1) が不必要に xs.o を作り直すことをなくすことができます。

関連ファイル

strings 文字列データベース
x.c 変換後のソースファイル
xs.c 配列 `xstr' を定義した C ソースコード
/tmp/xs* 中間ファイル

関連項目

mkstr(1)

バグ

ある文字列が他の文字列のサフィックスであり、かつ短いほうの文字列のほうが先に xstr によって処理されたなら、 たとえ、長いほうの文字列のみを格納すればよい場合にも、 両方の文字列がデータベース strings に格納されます。

歴史

xstr は BSD 3.0 で追加されました。

XSTR (1) December 30, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.