免费注册 查看新帖 |

Chinaunix

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

Linux下如何查看系统自带的结构定义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-17 23:05 |只看该作者 |倒序浏览
在Linux下编程,有一个困扰我很长时间的问题;

写程序时,有时会遇到一个系统结构,想即时了解一个系统声明的结构;
比如 struct sockaddr_in 结构的成员有哪几个,成员的类型是什么;
在Window下直接按F1就会转到MSDN上,可以直接查找;
在Linux也能用man 查找函数的定义,
但如何能够快速的找到本系统中指定结构或类型的定义?请各位老手给我指个方法;

先说下我现在常用的方法吧
(1)上网搜索,我感觉这样最快,
但网上的资料有时太乱,和具体的系统相关;
(2)直接在 /usr/include大概确定的文件里挨个查找,但速度太慢了;

想听听各位老大的方法和意见

论坛徽章:
0
2 [报告]
发表于 2008-01-18 10:43 |只看该作者
一般都是在/usr/include里找的,用grep工具也不是那么慢啊,比如
$ grep -R "struct sockaddr_in" /usr/include/*

论坛徽章:
0
3 [报告]
发表于 2008-01-18 13:13 |只看该作者
man -K xxx

论坛徽章:
0
4 [报告]
发表于 2008-01-18 13:41 |只看该作者
原帖由 G00GLE 于 2008-1-18 10:43 发表
一般都是在/usr/include里找的,用grep工具也不是那么慢啊,比如
$ grep -R "struct sockaddr_in" /usr/include/*


这种方法搜出来的结果一大堆, 结构定义和说明都混在一起,
很不容易分清,好像不太实用

论坛徽章:
0
5 [报告]
发表于 2008-01-18 13:50 |只看该作者
原帖由 maxxfire 于 2008-1-18 13:13 发表
man -K xxx


这个方法比较好用, 谢谢
我试了一下,man -K sockaddr_in 查了3次就找到了
但是man -K pthread_t 找了半天还没找到,可能有时候还是直接找头文件比较合适。

论坛徽章:
0
6 [报告]
发表于 2008-01-18 13:58 |只看该作者
刚从外边听说一个方法,用 cscope 可以生成一个索引
不知道大家谁用过,好不好用

查找一个系统本身的结构,谁还有更好的方法么

论坛徽章:
0
7 [报告]
发表于 2008-01-18 14:21 |只看该作者
如果你闲慢,可以采用2楼的方法,然后将声明的语句去除:
grep -R "struct sockaddr_in" /usr/include/* | grep -v "[;,]"

论坛徽章:
0
8 [报告]
发表于 2008-01-18 18:58 |只看该作者
原帖由 maxxfire 于 2008-1-18 14:21 发表
如果你闲慢,可以采用2楼的方法,然后将声明的语句去除:
grep -R "struct sockaddr_in" /usr/include/* | grep -v "[;,]"

谢谢了,这样看起来就少多了
就是有时候输入这么长的命令不太方便,不能偷懒了

论坛徽章:
0
9 [报告]
发表于 2008-01-18 22:18 |只看该作者
学习了

论坛徽章:
0
10 [报告]
发表于 2008-01-18 23:12 |只看该作者
原帖由 xiongyu 于 2008-1-18 13:41 发表


这种方法搜出来的结果一大堆, 结构定义和说明都混在一起,
很不容易分清,好像不太实用

那就看你自己搜索的模式怎么写了,比如
[scott@zwy perl]$ grep -R "struct sockaddr_in {" /usr/include/*
/usr/include/linux/in.h:struct sockaddr_in {
这样不就一下子搜出来了嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP