こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

質問

Solarisで開発をしているのですが、作成した実行ファイルがどのようなソースコード(具体的には、ソースコードの作成日付など)でメイクされたかを知る方法はないのでしょうか?

投稿日時 - 2011-11-06 21:53:11

QNo.7117680

困ってます

質問者が選んだベストアンサー

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$を展開するようになります。

投稿日時 - 2011-11-06 22:33:00

お礼

回答ありがとうございました

投稿日時 - 2011-11-06 23:53:56

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)