某些 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
也包含此内容的原因。