- ベストアンサー
質問
Solarisで開発をしているのですが、作成した実行ファイルがどのようなソースコード(具体的には、ソースコードの作成日付など)でメイクされたかを知る方法はないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Solarisに限らず、Unix全般で使っている方法としてidentコマンドを使うという方法があります。 各ソースファイルに次のstatic変数を埋め込んでおくと、ident コマンド名としたときにその一覧が表示されるというものです。 static char const rcsid[] = "$Id: f.c,v 1.5.56.1.6.1 2010/12/21 17:09:25 kensmith Exp $"; 各バージョン管理システムにはバージョン情報などをファイル上に出力するための仕組みがあるのでそれをrcsid[] として設定すると、identで見えるようになるというわけです。 例えば、 % ident /bin/ls /bin/ls: $FreeBSD: src/lib/csu/amd64/crti.S,v 1.7.30.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/amd64/crtn.S,v 1.6.30.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/common/crtbrand.c,v 1.6.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/lib/csu/amd64/crt1.c,v 1.15.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/cmp.c,v 1.18.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/ls.c,v 1.86.2.4.4.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/print.c,v 1.78.2.3.4.1 2010/12/21 17:09:25 kensmith Exp $ $FreeBSD: src/bin/ls/util.c,v 1.41.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $ のような感じで。 この設定例では$Id$というCVSの例をFreeBSDで拡張した$FreeBSD$を出していますが、subversionやgitなど他のバージョン管理ステムでも設定すると$Id$を展開するようになります。
お礼
回答ありがとうございました