下文摘自chinaunix:hongyueer的blog:
下面以查找结构体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_FILEstruct _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 0x20001libio.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_FILE5、我们看到了libio.h:struct _IO_FILE { 这一行,所以知道 它是在libio.h中定义的,打开该文件,即可看到定义。