すでに述べたとおり、cscope はデフォルトでは現ディレクトリ内にある C、lex、およびソースファイルのシンボル相互参照表を作成します。すなわち、次の 2 つのコマンドは等価です。
% cscope
% cscope *.[chly]
指定したソースファイルを表示するには、ソースファイル名を引数に指定して cscope を起動します。
% cscope <ファイル 1>.c <ファイル 2>.c <ファイル 3>.h
cscope のコマンド行オプションを使用して、相互参照表に含まれるソースファイルをさらに自由に指定することもできます。それには、次のように -s オプションの後にコンマで区切られた任意の数のディレクトリ名を指定して cscope を起動します。
% cscope -s <ディレクトリ 1>,<ディレクトリ 2>,<ディレクトリ 3>
cscope は現ディレクトリ内だけでなく、指定されたディレクトリ内にあるすべてのソースファイルを対象に相互参照表を作成します。<ファイル> 中にリストされているソースファイル (ファイル名をスペースやタブまたは復帰改行で区切ったもの) のすべてを表示するには、-i オプションとリストを持つファイル名を指定して cscope を起動します。
% cscope -i <ファイル>
ソースファイルがディレクトリツリーの中にある場合は、以下のコマンドでディレクトリツリー内のすべてのソースファイルを簡単に表示できます。
% find . -name '*.[chly] ' -print | sort > <ファイル> % cscope -i <ファイル>
このオプションを使用しても、コマンド行でファイルが指定されている場合は、指定されたファイル以外については無視されるので注意してください。
-I オプションは、cc に対する -I オプションと同じような形式で cscope にも指定できます。「インクルードファイル」を参照してください。
-f オプションを使用すると、デフォルトの cscope.out 以外のファイルを相互参照ファイルとして指定できます。このオプションは、同じディレクトリ内に異なるシンボル相互参照ファイルを保管するのに役立ちます。たとえば、2 つのプログラムが同じディレクトリ内にあるが、すべてのファイルを共有しているとは限らない場合に使用します。
$ cscope -f admin.ref admin.c common.c aux.c libs.c $ cscope -f delta.ref delta.c common.c aux.c libs.c
この例では、2 つのプログラム admin と delta のソースファイルは同じディレクトリ内にありますが、プログラムを構成するファイルは異なっています。cscope 起動時に、別のシンボル相互参照ファイルを指定しておくことによって、2 つのプログラムの相互参照情報を別々に保管できます。
-pn オプションを使用すると、検索結果でリストされたファイルのあるパス名やそのパス名の一部を表示することができます。-p の後の n には、パス名の中で最後から何番目までの要素を表示させたいかを指定します。デフォルト値は 1 で、これはファイル名そのものを意味します。したがって現ディレクトリが home/common の場合、以下のコマンドによって検索結果のリストに表示されるパス名は、common/<ファイル 1>.c や common/<ファイル 2>.c のようになります。
% cscope -p2
表示したいプログラムが大量のソースファイルを含む場合、-b オプションを使用して、相互参照表を作成した後で cscope を終了することができます。このとき、作業メニューは表示されません。パイプを使用して、cscope -b の出力を batch(1) コマンドの入力につなげると、cscope は相互参照表をバックグラウンドで作成します。
% echo 'cscope -b' | batch
相互参照表がいったん作成されると、その後、ソースファイルまたはソースファイルのリストを変更しない限り、次のように指定するだけで相互参照表がコピーされ、通常通り作業メニューが表示されます。
% cscope
このコマンドシーケンスを使用すると cscope の初期処理の終了を待たずに作業を続けることができます。
-d オプションは、cscope にシンボル相互参照表を更新させません。このオプションを指定すると、ソースファイルの変更が検査されないため時間の節約になります。変更されていないと確信できる場合にのみ使用してください。
-d オプションの使用には注意が必要です。ソースファイルが変更されていることに気付かずに -d オプションを使用すると、cscope は古いシンボル相互参照表を使用して照会に応じてしまいます。
他のコマンド行オプションについては、cscope(1) のマニュアルページを参照してください。