免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1924 | 回复: 5
打印 上一主题 下一主题

linux如何查找一个结构体的原始定义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-07 12:19 |只看该作者 |倒序浏览

                下面以查找结构体FILE的原始定义为例:
1、我们知道,这些定义一般都在 /usr/include下面,所以首先到达目录 /usr/include 下面
2、用grep命令搜索 ,即 grep ‘FILE' stdio.h,可得以下结果(部分),FILE在stdio.h中定义有好多地方提到过。
#if !defined __need_FILE && !defined __need___FILE
# define __need_FILE
# define __need___FILE
#endif /* Don't need FILE.  */
#if !defined __FILE_defined && defined __need_FILE
struct _IO_FILE;
typedef struct _IO_FILE FILE;
#if defined __USE_LARGEFILE64 || defined __USE_SVID || defined __USE_POSIX \
__USING_NAMESPACE_STD(FILE)
3、从上面的搜索结果可以看到,实际上是把 _IO_FILE 定义为FILE,于是又要查找 _IO_FILE的定义。
4、用grep命令,即执行 grep '_IO_FILE' *.h ,得到以下结果(部分,因为全部太多了,我们要从大量的结果中找到关键内容,当然也可以通过管道 二次使用grep)
_G_config.h:#define _G_HAVE_IO_FILE_OPEN 1
_G_config.h:#define _G_IO_IO_FILE_VERSION 0x20001
libio.h:struct _IO_jump_t;  struct _IO_FILE;
libio.h:  struct _IO_FILE *_sbuf;
libio.h:struct _IO_FILE {
libio.h:  struct _IO_FILE *_chain;
libio.h:#ifdef _IO_USE_OLD_IO_FILE
5、我们看到了libio.h:struct _IO_FILE { 这一行,所以知道 它是在libio.h中定义的,打开该文件,即可看到定义。
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/91785/showart_1817137.html

论坛徽章:
0
2 [报告]
发表于 2009-05-12 14:39 |只看该作者

顶一个,有帮助

顶一个,有帮助

论坛徽章:
0
3 [报告]
发表于 2009-05-12 14:41 |只看该作者
cscope,直接查找,你这样太麻烦了。

论坛徽章:
2
申猴
日期:2013-12-26 22:11:31天秤座
日期:2014-12-23 10:23:19
4 [报告]
发表于 2009-05-12 15:48 |只看该作者
lxr

论坛徽章:
5
5 [报告]
发表于 2009-05-12 16:11 |只看该作者
LZ太麻烦. 随便用点工具, 都会很方便.

论坛徽章:
0
6 [报告]
发表于 2009-05-12 16:23 |只看该作者
谢谢分享~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP