如何找出声明 C 结构的位置?
How to find out where a C struct is declared?
我正在尝试向 Web 代理 Polipo 添加日志记录,作为其中的一部分,需要在以下函数 following line:
中记录 url 请求
httpClientRequest(HTTPRequestPtr request, AtomPtr url)
从编译中我看到 AtomPtr 是类型 _Atom
的结构,但我找不到它的定义位置,因此我可以在日志语句中引用 url 的文本。在 C 代码中查找结构定义的规范方法是什么?
如果您正在处理 Linux,那么在当前目录中 grep struct 关键字以查看它在文件中的定义。
不幸的是,据我所知,您无法在 C 中从源代码中执行此操作
如果您正在 Linux 上工作,并且如果您的源代码都在 src/
目录中:
$ find src/ -name ".*\.h" | xargs grep -e "struct _Atom"
您可以像 this 一样搜索 AtomPtr 并查看 AtomPtr 的定义位置
typedef struct _Atom {
unsigned int refcount;
struct _Atom *next;
unsigned short length;
char string[1];
} AtomRec, *AtomPtr;
我正在尝试向 Web 代理 Polipo 添加日志记录,作为其中的一部分,需要在以下函数 following line:
中记录 url 请求httpClientRequest(HTTPRequestPtr request, AtomPtr url)
从编译中我看到 AtomPtr 是类型 _Atom
的结构,但我找不到它的定义位置,因此我可以在日志语句中引用 url 的文本。在 C 代码中查找结构定义的规范方法是什么?
如果您正在处理 Linux,那么在当前目录中 grep struct 关键字以查看它在文件中的定义。
不幸的是,据我所知,您无法在 C 中从源代码中执行此操作
如果您正在 Linux 上工作,并且如果您的源代码都在 src/
目录中:
$ find src/ -name ".*\.h" | xargs grep -e "struct _Atom"
您可以像 this 一样搜索 AtomPtr 并查看 AtomPtr 的定义位置
typedef struct _Atom {
unsigned int refcount;
struct _Atom *next;
unsigned short length;
char string[1];
} AtomRec, *AtomPtr;