解释“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 不要求包含<sys/types.h>,并且 Linux 上不需要此头文件。然而,一些历史(BSD)实现需要这个头文件,并且便携式应用程序包含它可能是明智的。

我想这就是 Mac 手册页sys/types.h也包含此内容的原因。

相关内容