益友网(http://www.1uu2.com) 做linux用户的良师益友

当前位置: 益友网 > Linux常识 > 文章正文

linux如何查找一个结构体的原始定义

liner 发表于 2009-02-09 00:29 | 来源: | 阅读 1,071 次

下面以查找结构体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 0×20001

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中定义的,打开该文件,即可看到定义。

关键字:
喜欢益友网的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露



返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明 |