我用#include <sys/socket.h>
编译我的简单程序,但是找不到这个文件。
它在哪里呢?我刚开始在Linux上编程,不知道在哪里可以找到它。还是我们需要在线下载它呢?
如果您已经安装了手动页,第一步应该是查看 man socket
。
如果没有手动页,您可以调用
find /usr/include -name socket.h
输出结果为
/usr/include/asm/socket.h
/usr/include/sys/socket.h
/usr/include/bits/socket.h
/usr/include/linux/socket.h
在我的系统上,需要包含的是sys/socket.h
。
另请参阅Single UNIX规范。
例如,在一个全新的Linux系统上,比如Ubuntu X86-64,如果没有安装gcc,则找不到socket.h
头文件。但是一旦安装了gcc,您可以在/usr/include
下找到它,对我来说,输出结果为:
$ find /usr/include/ -name socket.h
/usr/include/asm-generic/socket.h
/usr/include/x86_64-linux-gnu/asm/socket.h
/usr/include/x86_64-linux-gnu/bits/socket.h
/usr/include/x86_64-linux-gnu/sys/socket.h
/usr/include/linux/socket.h
sys/socket.h
)位于 libc6-dev
包中。它们位于 /usr/include
目录下,具体位置取决于架构。 - pevikman socket
应该能为您提供答案。
应该是#include <sys/socket.h>
。您可能还需要包括sys/types.h
。
但如果失败了,您能否提供一个简短的源代码片段,包括您正在#include的文件以及如何包含它们,以及您收到的错误消息?