有没有适合 Linux 的良好数据库,我可以在其中搜索函数名称并告诉我它是在哪个 header 中定义的?谷歌搜索并不总是对我有用,而且并不总是有手册页。
最佳答案
使用手册页
对于基本的 C 函数,联机帮助页应该有效。
man 2 read
man 3 printf
第 2 部分用于系统调用(直接到内核),第 3 部分用于标准 C 库调用。您通常可以省略该部分,然后 man 会自行找出您需要的内容。
请注意,您可能需要采取额外的步骤才能在您的系统上获取与开发相关的联机帮助页。例如,在我的 Debian 系统上,我必须执行 apt-get install manpages-dev glibc-doc
。
使用库特定的引用
对于非基本的 C 函数,您应该检查您正在使用的库的文档(例如,GNU's docs 用于 libstdc++,doc.qt.io 用于 Qt,library.gnome.org 用于 GNOME 项目,如 GTK,等等) .
使用网络
linux.die.net是一个很好的网页在线镜像。
LSB Navigator (如本答案中所述)看起来很酷。我对此一无所知。
使用 grep
有时自己搜索/usr/include
最简单。 grep 适用于此,但是 ack好多了。例如,如果我试图找到包含 getRootLogger 的 header :
cd /usr/include
# Debian calls 'ack' ack-grep. Your system may differ.
# Add \b before and after to only match a complete word.
ack-grep '\bgetRootLogger\b'
ack 将返回一个格式和颜色都很好的匹配列表。
您可以将其包装在一个函数中,并将其放入您的 .bashrc
文件(或等效文件)中以便于使用:
function findheaderfor() {
ack-grep \\b$1\\b /usr/include /usr/local/include
}
关于linux - 查找定义 Linux 函数的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681278/