比如,我要知道atoi()函数的定义,怎么确定它在哪个文件里,我有Linux内核代码,但不知道它在哪,怎么找啊,malloc函数呢?怎么确定?
å¦æè¦çè¿ä¸¤ä¸ªå½æ°å¨æ ååºä¸çå®ä¹ç¨ctagsæcscopeçæç´¢å¼.h,cscopeï¼å¯ä»¥è·³è½¬å°å½æ°å®ä¹ï¼man mallocï¼å£°æè§stdlibã
å¦æä»ç¶æ¾ä¸å°ï¼å¯ä»¥ç¨ctags,siægrepã
windowsä¸ç¨source insightä¹å¯ï¼ç¶åæ¥æ¾å½æ°å®ä¹ï¼ç¨grep -r æç´¢å ³é®åï¼atoiåmallocå¨Cçæ ååºä¸æå®ä¹ã
1.å®è£ ctags
å¨æºä»£ç ç®å½ä¸è¿è¡
ctags -R
è¿æ ·ï¼ä¼éå½çæå½åç®å½ä¸åå ¶åç®å½çtagsæ件ã
2.使ç¨VIMæ ¹æ®tagsæ件æ¥æ¾å½æ°æç»æå®ä¹ã
1.å¨æºç ç®å½ä¸æ¥æ¾
vi -t tagname
2.å¦æè¦å¨ä»»æä½ç½®ä½¿ç¨ï¼åéè¦æ该tagsæ件添å å°~/.vimrcæ件ä¸
set tags=/home/money/sda8/2.6232/tags
3.å¦æè¦å¨ä»£ç ä¸å®æ¶è·è¸ªï¼åå æ 移å¨å°å½æ°åä¸ï¼ä½¿ç¨CTRL+]é®ï¼æCTRL+tå¯ä»¥è¿åã
å¦æè¦è·è¸ªç³»ç»å½æ°ï¼ä½¿ç¨shift+Kå¯ä»¥èªå¨è·³è½¬éå æ æå¨å½æ°çæåã
windows下用source insight也可。如果仍然找不到,用grep -r 搜索关键字。
如果没记错,atoi和malloc在C的标准库中有定义,声明见stdlib.h。标准库的函数都可以man。 man atoi,man malloc. 如果要看这两个函数在标准库中的定义,可以下载glibc源代码,然后查找函数定义。同样可以用ctags,cscope,si或grep。本回答被提问者采纳
windows下用source insight也可。如果仍然找不到,用grep -r 搜索关键字。
如果没记错,atoi和malloc在C的标准库中有定义,声明见stdlib.h。标准库的函数都可以man。 man atoi,man malloc. 如果要看这两个函数在标准库中的定义,可以下载glibc源代码,然后查找函数定义。同样可以用ctags,cscope,si或grep。
man atoi
即可知道atoi函数的定义
同理,输入:
man malloc
即可知道malloc的定义