2009-10-27 100 views
1

在源代碼(尤其是舊的代碼),可以在頭部看到評論評論的文件名,日期,也許還有其他的信息,在這個特殊格式:fdlibm.h 1.5 95/01什麼程序/實用程序在源代碼中使用特殊字符串「@(#)」?

/* @(#)/18 */

(參見:http://www.google.com/codesearch?q=%22%40%28%23%29%22&hl=en&btnG=Search+Code

這是很相似的(或者是相關的?)到RCS般串 「的$ id $」($頭$等)。 我以爲「文件」命令行工具或類似的將在源中尋找這些「魔術」字符串,但事實並非如此。

是否有一個實用程序(除'grep'!以外)實際上使用了以「@(#)」爲前綴的字符串?

回答

8

這將是SCCS,一箇中古時代的修訂控制系統。那個神奇的字符串被the what command使用。

0

「什麼」(來自SCCS)的確是正確答案(謝謝喬納森)。我希望找到一個現代的跨平臺版本的「什麼」,甚至可以用於二進制文件(比如「strings xfile | grep ...」)。目前看來,「什麼」通常仍然只能在Solaris上找到。

下面是一個例子...

$ cat foobar.c 
/* 
* @(#) foobar.c 9.04 (mn) 10/29/2009 
*/ 
static const char * foobar = "@(#) some string"; 
int main(int argc, char *argv[]) { } 

$ gcc foobar.c 

$ what a.out foobar.c 
a.out: 
     some string 
     SunOS 5.10 s10_69 December 2004 
foobar.c: 
     foobar.c 9.04 (mn) 10/29/2009 
     some string 

$ strings a.out | grep '@(#)' 
@(#) some string 

PS:我想張貼這是喬納森的正確答案評論,但是源代碼formatting didn't quite work out.

+0

如果你發現我的答案有幫助,您可以「接受「它。 – 2009-11-08 07:07:23

+0

感謝您的提醒。點擊小箭頭(變成綠色)並不像實現者認爲的那樣直截了當。如果有人在聽(ahem),實際的文字說「接受這個答案」將會是一個稍微好一些的人機界面設計決策。 – michael 2009-12-15 07:18:45

相關問題