C
如何找到定義ac函式的標頭檔?
有沒有一種簡單的方法可以找出 C 函式聲明在哪個標頭檔中?
cd
進入/usr/include
並執行 (grep -E 'system.*\(' *.h -R
) 可以進行一些試驗和錯誤,但沒有更簡單的方法可以做到這一點嗎?
$ man 2 read
…
READ(2) Linux Programmer's Manual READ(2) NAME read - read from a file descriptor SYNOPSIS #include <unistd.h> ...
如果您在系統上的標頭檔中搜尋,您將在系統上聲明該函式的標頭檔中找到。這可能很困難,因為有時函式是通過複雜的宏聲明的。它只會告訴你係統上的哪個標頭檔聲明了該函式;這甚至可能是一個你不能直接包含的標頭檔,因為它需要其他標頭檔在前。
查找要包含的標頭檔的唯一安全方法是查閱提供該函式的庫的文件。對於標準庫,可以參考:
- C 標準(C89=C90、C99或C11)定義了在每個執行 C 的平台上都可用的函式。
- POSIX /Single Unix 標準(POSIX:2004、POSIX:2008)定義了在每個類 unix 平台上都可用的函式。
- 您的平台可能具有其他功能或可能提供附加功能。查閱它的手冊頁(
man 3 function_name
或者——2 和 3man 2 function_name
之間的區別主要是歷史性的)或其他文件(例如 Linux 上的GNU libc 手冊)。