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

来源:互联网 发布:nginx log 路径 编辑:程序博客网 时间:2024/05/20 15:41

转载于:http://linux.chinaunix.net/techdoc/system/2009/02/07/1060951.shtml

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

原创粉丝点击