2009-10-27 99 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

相关问题