查找定义C函数的头文件
应该不难,对吗?对?
我目前正在搜索OpenAFS代码库以查找pioctl的头定义。我已经抛出了我所拥有的一切:检查了ctags,grepped pioctl的源代码等等。最接近我的领导是有一个文件pioctl_nt.h包含定义,除了它的实际上并不是我想要的,因为没有任何用户空间代码直接包含它,而且它是Windows特定的。
现在,我不希望你去下载OpenAFS代码库并为我找到头文件。不过我很好奇:当其他所有方法都失败时,您找到所需头文件的技巧是什么?什么是最糟糕的情况可能会导致代码库中的pioctl的grep实际上没有出现任何看起来像函数定义的东西?
我还应该注意到,我可以访问两个已经正确完成它的独立用户空间程序,所以理论上我可以对该函数进行O(n)搜索。但是没有一个头文件弹出给我,而且n很大......
编辑:即时问题已得到解决:pioctl()是隐式定义的,如下所示:
AFS.xs:2796: error: implicit declaration of function ‘pioctl’
没有找到相关结果
已邀请:
6 个回复
凄挡
和
失败,那么它可能被定义为一些令人讨厌的宏的结果。您可以尝试制作最简单的文件,调用
并成功编译,然后预处理它以查看会发生什么:
缉康怪
仇聘发栖
(可从SourceForge获得)? 我在一些相当重要的代码集(25,000多个文件,文件中最多约20,000行)上使用它并取得了很好的成功。在古老的Sun E450上构建交叉引用需要一段时间才能获得文件列表(5-10分钟)和更长时间(20-30分钟),但我发现结果很有用。 在几乎同样古老的Mac(双1GHz PPC 32位处理器)上,在OpenAFS(1.5.59)源代码上运行的cscope会出现很多声明函数的地方,有时在代码中内联,有时在标题中。扫描4949文件花了几分钟,生成一个58 MB的cscope.out文件。 OpenAFS的 - 59年1月5日/ src目录/ SYS / sys_prototypes.h openafs-1.5.59 / src / aklog / aklog_main.c(以及评论“为什么AFS不提供这些原型?”) OpenAFS的 - 59年1月5日/ src目录/ SYS / pioctl_nt.h openafs-1.5.59 / src / auth / ktc.c包含PIOCTL的定义 openafs-1.5.59 / src / sys / pioctl_nt.c提供了它的实现 openafs-1.5.59 / src / sys / rmtsysc.c提供了它的实现(有时候是afs_pioctl()) 发现的184个实例中的其余部分似乎是使用函数,文档引用,发行说明,更改日志等。
捕暑句簿姓
芜任亮蜡
揽芳僵迷仇