最初, 戻る, 進む, 最後, 目次 に行く。


16.2 キーワードの使用

キーワードを使いたい場合は、$Id$ などの適当な文字列を ファイルに記述してから格納するだけです。 CVS は格納操作の一環として自動的に文字列を展開します。

次例は、C のソース中に $Id$ を埋め込む典型的な方法です。 この例では、置換後のファイルの始めから数行を示します:

static char *rcsid="$Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $";
/* The following lines will prevent gcc version 2.x
   from issuing an "unused variable" warning. */
#if __GNUC__ == 2
#define USE(var) static void * use_##var = (&use_##var, (void *) &var) 
USE (rcsid);
#endif

ちょっと賢いコンパイラで最適化すると、 使用しない変数 rcsid が削除されてしまいますが、 ほとんどのコンパイラでは文字列がバイナリに埋め込まれます。 またバイナリ中に直接文章を埋め込むために #pragma が 使用できるコンパイラもあります。

ident コマンド (RCS の一部) を使用して、 ファイルからキーワードとその値を抜き出すことができます。 もちろんテキスト・ファイルにも使えますが、 バイナリ・ファイルからキーワードを抜き出したいときに非常に便利です。

$ ident samp.c
samp.c:
     $Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
$ gcc samp.c
$ ident a.out
a.out:
     $Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $

別のリビジョン管理システムとして有名なものに SCCS があります。 SCCS には、ident と非常によく似た 同じ用途のコマンド what が含まれます。 RCS を持たないサイトの多くは SCCS を使っています。 what コマンドは @(#) という文字列を探すため、 両方のコマンドに対応するキーワードを含めるのは簡単です。 RCS のキーワードの前に、 簡単な SCCS の魔法の呪文を唱えるだけで良いのです:

static char *id="@(#) $Id: ab.c,v 1.5 1993/10/19 14:57:32 ceder Exp $";


最初, 戻る, 進む, 最後, 目次 に行く。