在源代码中的注释(特别是旧代码)中,可以在标题注释中看到文件名,日期以及这种特殊格式的其他信息:
/ * @(#)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 $”($ Header $等)非常相似(或者可能相关?)。 我认为“文件”命令行实用程序或类似工具会在源代码中查找这些“魔术”字符串,但事实并非如此。
是否有一个实用程序/程序(除了'grep'!)实际使用这些字符串前缀为“@(#)”?
答案 0 :(得分:8)
那将是SCCS,一个中生代的修订控制系统。 the what command使用了这个神奇的字符串。
答案 1 :(得分:0)
“什么”(来自SCCS)确实是正确答案(感谢Jonathan)。我希望找到一个现代的跨平台版本的“什么”甚至可以用于二进制文件(如“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:我尝试将此作为对Jonathan正确答案的评论发布,但源代码formatting didn't quite work out.