ac関数を定義するヘッダファイルを見つける方法は?

ac関数を定義するヘッダファイルを見つける方法は?

C関数宣言がどのヘッダファイルにあるかを見つける簡単な方法はありますか?cding into/usr/includeとrun(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=C90C99またはC11)は、Cが実行されているすべてのプラットフォームで利用可能な機能を定義します。
  • これPOSIX/シングルUnix標準(POSIX:2004POSIX:2008)は、各UNIXシリーズプラットフォームで利用可能な機能を定義します。
  • あなたのプラットフォームには他の機能があるか、追加機能を提供できます。マンページ(man 3 function_nameまたはman 2 function_name- の違い)を参照してください。2と3主に歴史的)または他の文書(例:GNU libc マニュアルLinuxで)。

関連情報