如何找到定义ac函数的头文件?

如何找到定义ac函数的头文件?

有没有一种简单的方法可以找出 C 函数声明位于哪个头文件中?cding into/usr/include并运行 ( grep -E 'system.*\(' *.h -R) 需要一些尝试和错误,但是没有更简单的方法来做到这一点吗?

答案1

$ man 2 read

...

READ(2)                    Linux Programmer's Manual                   READ(2)

NAME
       read - read from a file descriptor

SYNOPSIS
       #include <unistd.h>
 ...

答案2

如果您在系统上搜索头文件,您将在系统上声明该函数的头文件中找到。这可能很困难,因为有时函数是通过复杂的宏声明的。它只会告诉你哪个头文件声明了该函数你的系统;这甚至可能是一个您无法直接包含的头文件,因为它需要首先包含其他头文件。

查找要包含的头文件的唯一安全方法是查阅提供该函数的库的文档。对于标准库,可以参考:

  • C标准C89=C90,C99或者C11) 定义了在运行 C 的每个平台上可用的函数。
  • POSIX/单一 Unix 标准 (POSIX:2004,POSIX:2008) 定义了每个类 UNIX 平台上可用的函数。
  • 您的平台可能具有其他功能或可能提供附加功能。请参阅其手册页(man 3 function_name或者man 2 function_name- 之间的区别2 和 3很大程度上是历史的)或其他文档(例如GNU libc 手册在 Linux 上)。

相关内容