如何在linux中找到要包含在库函数中的头文件

时间:2010-03-03 21:40:35

标签: c linux

给定一个函数,让我们说atoi,如果我想使用这个函数,如何找到我应该包含的头文件?我总是对这个问题感到困惑。如果让我把像“atoi”这样的函数视为linux c api,我可以用另一种方式提出我的问题:是linux c api的文档吗?

5 个答案:

答案 0 :(得分:12)

Man pages。在命令提示符下键入man atoi(或者,通常为man <function>)。它将为您提供使用信息以及要包含哪些标题的列表。

手册页还记录了程序和命令(find,grep,cd等)。有时您可能遇到程序与C函数同名的情况(例如,写入)。在这种情况下,您需要指导人员查看手册的正确部分,第2部分查看系统调用,第3部分查看库函数。您可以通过在“man”和命令名称之间插入节号来完成此操作:man 2 write。如果您不知道给定的函数是系统调用还是库函数,请尝试两者。

您可以通过输入man man了解有关手册页的更多信息。

答案 1 :(得分:2)

或者,您可以在系统的/ usr / include目录中搜索您正在查找的函数定义的出现位置。这对于缺少手册页的嵌入式或精简版Linux系统特别有用。

find /usr/include -name "*.h" -print | xargs grep "<function-you-are-looking-for>"

例如,如果你这样做:

find /usr/include -name "*.h" -print | xargs grep atoi

你会得到这样的东西:

/usr/include/stdlib.h:extern int atoi (__const char *__nptr)

结果包含头文件名和接口定义。

  • 请注意,您的/ usr / include目录可能位于其他位置。

答案 2 :(得分:1)

是linux c api的文档吗?

当然可以。该文档以手册页的形式提供。在终端中输入man <function>并享受。您需要包含哪个头文件通常显示在顶部。

答案 3 :(得分:1)

如果你正在使用ctags和vim编辑器并且你已经设置了ctags来扫描/ usr / include然后ctrl-]当你在你想要找到的函数上时会带你到头文件!

答案 4 :(得分:0)

您还可以使用以下内容

whereis <function name> 

它将给出函数的路径名。然后使用vim编辑器打开路径。然后使用“vim”编辑器,您可以看到头文件。

实施例

> whereis atoi 
   atoi: /usr/share/man/man3/atoi.3.gz

 > vim /usr/share/man/man3/atoi.3.gz

   ----------
   ----------
  .B #include <stdlib.h>