1

我进行了很多搜索,发现了https://en.wikipedia.org/wiki/C_standard_library不同头文件的漂亮参考,但没有说明它们定义的常用功能。有没有对常用 C 函数的简要参考?

例如:

#include <getopt.h>
#include <event.h>
#include <libpq-fe.h>
#include <config.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/utsname.h>
#include <pwd.h>
#include <grp.h>

..是我在主要 c 程序中经常看到的标题.. 任何人都可以解释它们的作用吗?

  • 注意:如果我看到一个方法 int XXX(char *YYY) ,我如何才能找到该方法在哪个标头中定义..

4

3 回答 3

3

请参阅此处了解什么是标准 C:

http://port70.net/~nsz/c/c11/n1570.html#7

这里是标准 POSIX:

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/contents.html

至于如何查找给定函数的声明位置,请在此处查找函数:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html

并且正确的标题将显示在概要文本中。您自己的系统手册(例如man*nix 上的页面)可能也会包含这些信息,但大约 5% 的时间它们是错误的,因此最好查看权威答案的标准。

于 2013-06-16T19:36:42.877 回答
2

对于我所知道的标准 C 库中的一切如何工作,没有详细的解释。我不知道是否有,但请注意实现是平台相关的。因此,您将需要许多解释。

您最好查看文档和您正在使用的 libc 的源代码。例如,glibc它可以在这里找到:docssource

正如您提到的标题一样,它在 C 中确实不是标准的(除了stdio.h),尽管在 linux 中很常用。例如,getopt.h允许您使用函数进行命令行选项遍历。谷歌搜索每个标题的相关内容非常容易。对于您将看到的每个标题,在一个地方都没有标题-含义关系。

找出哪个标头包含函数通常是通过谷歌搜索完成的。是的,再次。但至少还有其他两种方法可以找到它。首先,如果你使用 IDE,它可以让你“去声明”一个函数,这将有效地找到头文件。其次,您可以grep通过所有/usr/include/文件(或存储头文件的任何位置)并找到声明函数的位置。

另请注意,函数在标头中的声明位置并不能告诉您函数的实现位置。例如,标准库中的大多数(如果不是全部)函数都是在 glibc(或 ms c 运行时)中实现的。

于 2013-06-16T18:19:07.673 回答
0

实际上,如果您查看漂亮的参考资料,您可以单击大多数包含文件并在那里找到它们定义的列表函数。

于 2013-06-16T18:23:29.510 回答