一部の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.h
Macのマニュアルページにもこれが含まれているようです。