3 个回答

在 C语言 中,使用 #include 包含头文件,在编译时,编译器会在特定目录下寻找所引用的头文件。
类似于通过 PATH 环境变量查找可执行程序一样。

#include <sys/socket.h> 表示在 #incude 的某个寻址目录下,有一个 sys 子目录。在 sys 子目录里面有一个 socket.h 文件。
并不是说要包含一个名为 “sys/socket.h” 的文件。

实际上,在 Linux 中,C语言查找头文件的方式,以及头文件路径名的写法跟 Linux 的文件寻址是一样的。
再举个例子,假设有一个源码文件包含 #include "../utils.h",这表示包含该源码文件父目录下的 utils.h 头文件。

sys 是一个目录。socket.h 是文件名。

因为socket.h 头文件包含于sys目录内,sys后加斜杠的目的就是为了进入这个文件路径打开这个头文件。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题