免费注册 查看新帖 |

Chinaunix

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

Linux下编程如何查询某个结构体的信息? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-09 16:04 |只看该作者 |正序浏览
Linux下如何查询某个结构体的信息?比如我要查询ifreq这个结构成员的信息,用man ifreq查不到,我该这么查询呢?

论坛徽章:
0
23 [报告]
发表于 2006-07-17 17:15 |只看该作者

tian

楼上你把cscope -b 生成的.out文件放在/root目录下.
然后在.vimrc下面添加
set cst
cscope add cscopt.out

添加到是成功了不过, 按照楼主的在vim中使用的方法, 找不到结构体的定义. 提示错误是cstag: 找不到tag

论坛徽章:
0
22 [报告]
发表于 2006-07-14 11:38 |只看该作者
还有一个问题.我把cs add /home/cscope.out加到~/.vimrc里,vi打开文件的时候显示Added cscope database /home/cscope.out
Hit ENTER or type command to continue能不能不让它显示啊?

论坛徽章:
0
21 [报告]
发表于 2006-07-14 11:29 |只看该作者
不放在/usr/include下就好用了.多谢多谢多谢了

论坛徽章:
0
20 [报告]
发表于 2006-07-14 11:26 |只看该作者
原帖由 hades555 于 2006-7-14 11:22 发表
都是绝对路径

我也没办法了。
提两个建议:
1、不要在/usr/include目录下建cscope.files和cscope.out,应该放在其它目录下
2、用:cs find s word试试。也许你的VIM加载了ctags文件。

论坛徽章:
0
19 [报告]
发表于 2006-07-14 11:22 |只看该作者
都是绝对路径

论坛徽章:
0
18 [报告]
发表于 2006-07-14 11:20 |只看该作者
原帖由 hades555 于 2006-7-14 11:11 发表


find /usr/include -name "*.h" >cscope.files

我是这样做的.

奇怪,我这里重复你的步骤,结果却跟你的不一样。

你看看cscope.files,里面都是绝对路径吗?

论坛徽章:
0
17 [报告]
发表于 2006-07-14 11:11 |只看该作者
原帖由 assiss 于 2006-7-14 11:10 发表

你不会是:
cd /usr/include
find . -name "*.h" >cscope.files
cscope -b
吧?


find /usr/include -name "*.h" >cscope.files

我是这样做的.

论坛徽章:
0
16 [报告]
发表于 2006-07-14 11:10 |只看该作者
第二个问题
cd /usr/include
find /usr/include -name '*.h' >cscope.files
cscope -b
cd /home
vi aaa
cs add /usr/include/cscope.out

tag getpid
出现了以下的结果
Cscope tag: getpid
   #   line  filename / context / line
   1   2642  /usr/include/glib-1.2/glib.h <<getpid>>
             #define getpid _getpid
   2    109  /usr/include/mysql/my_pthread.h <<getpid>>
             #define getpid() GetCurrentThreadId()
   3    108  /usr/include/mysql3/mysql/my_pthread.h <<getpid>>
             #define getpid() GetCurrentThreadId()
   4     27  /usr/include/php/main/win95nt.h <<getpid>>
             #define getpid _getpid
   5    257  /usr/include/pm_config.h <<getpid>>
             #define getpid() ((pid_t)FindTask(NULL))
   6    549  /usr/include/unistd.h <<getpid>>
             extern __pid_t getpid (void ) __THROW;
   7    105  /usr/include/wvstreams/wvpipe.h <<getpid>>
             int getpid() const { return proc.pid; };
   8    257  pm_config.h <<getpid>>
             #define getpid() ((pid_t)FindTask(NULL))
   9    549  unistd.h <<getpid>>
             extern __pid_t getpid (void ) __THROW;

8,9都不是绝对路径
按9
造成了按就就显示
E429: File "unistd.h" does not exist
E257: cstag: tag not found
怎么个事?

论坛徽章:
0
15 [报告]
发表于 2006-07-14 11:10 |只看该作者
原帖由 hades555 于 2006-7-14 11:06 发表
第一个问题是绝对路径的问题,我解决了.
cs add /usr/include/cscope.out

你不会是:
cd /usr/include
find . -name "*.h" >cscope.files
cscope -b
吧?
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP