スポンサーリンク

XSTR(1) FreeBSD 一般コマンドマニュアル XSTR(1)

名称

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.cxs.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 は 3.0BSD で追加されました。

FreeBSD 10.0 December 30, 1993 FreeBSD 10.0

スポンサーリンク