如何查看c库函数列表?

如何查看c库函数列表?

我是 Linux 编程的新手。我发现通过命令行查看 Linux 中系统调用列表的方法是:

man syscalls

但是现在我想查看 c 库函数列表,我该怎么做?哪个命令可以帮助我列出 c 库函数?还有一个问题,系统调用和 c 库函数手册页位于哪里?谢谢。

答案1

哪个命令可以帮助我列出 c 库函数?

以下是列出标准 C 库(GNU libc)中定义的所有函数的一种方法:

nm -D /lib/$(uname -m)-linux-gnu/libc-*.so | grep -vw U | grep -v "_" | cut -d " " -f3

请注意,系统调用也将包括在内,因为它们实际上是包装真实系统调用的函数。

系统调用和 c 库函数手册页位于哪里?

系统调用手册页位于:

/usr/share/man/man2

库函数手册页位于:

/usr/share/man/man3

答案2

我发现有一个离线文档浏览器很有用,叫做热情,与 Dash 类似。

其他选择:

whereis glibc

或者

dpkg -L *libc*

并在文本编辑器中打开文件。

要在文件内部递归搜索字符串:

grep -R "some string" /path/to/includes

需要考虑的一些路径:

  • /usr/local/include
  • /usr/target/include
  • /usr/include

其他选择可能包括:

答案3

有一个很好的包可以显示C函数头,名为ref。要了解更多信息,请参阅man refC。它有一个很好的数据库,您可以在其中找到库函数列表。

函数列表在文件中/usr/share/elvis/stubs/ansistub.c。您可以直接查看这些函数,也可以根据需要进行筛选。

您可以在终端中使用以下大行立即查看完整列表,

cat /usr/share/elvis/stubs/ansistub.c | grep "^int\|^char\|^void\|^double\|^ldiv_t\|^unsigned\|^type\|^struct\|^FILE\|^size_t\|^time_t\|^long\|^clock\|^mbstowcs\|^div_t" | awk 'NR > 12' | less

您将获得类似的输出

void abort(void)
int abs(int num)
double acos(double cosvalue)
char *asctime(const struct tm *currtime)
double asin(double sinvalue)
void assert(int expression)
int atexit(void(*func)(void))
long int atol(const char *string)

....

或者你可以使用以下方法将列表复制到文件中myCfunction.list

cat /usr/share/elvis/stubs/ansistub.c | grep "^int\|^char\|^void\|^double\|^ldiv_t\|^unsigned\|^type\|^struct\|^FILE\|^size_t\|^time_t\|^long\|^clock\|^mbstowcs\|^div_t" | awk 'NR > 12' > myCfunction.list

要使用它,请先ref使用以下命令进行安装,

sudo apt-get install elvis-tools

相关内容