"man" Cライブラリ名の解釈

"man" Cライブラリ名の解釈

一部のCライブラリファイルは、#include一番上に複数のファイルを表示します。たとえば、man connect次のようにします。

SYNOPSIS
  #include <sys/types.h>
  #include <sys/socket.h>

connectしかし、コマンドを呼び出すにはsys/socket.h。他のファイルが含まれるようにソースコードをソートするのはなぜですか?含めたくない特定の状況がありますかsys/types.h

答え1

~からLinuxのマニュアルページコメントセクション:

POSIX.1-2001はinclusionを必要とせず、<sys/types.h>Linuxではこのヘッダは必要ありません。ただし、一部の歴史的(BSD)実装にはこのヘッダーが必要であり、移植可能なアプリケーションにはそれを含めることが賢明かもしれません。

そのため、sys/types.hMacのマニュアルページにもこれが含まれているようです。

関連情報