2010-10-26 12 views
6

我编译我的简编与#include <sys/socket.h>但没有这个文件。 它在哪里,我只是开始在Linux编码,我不知道它在哪里。或者我们需要在线下载它。其中是在Linux中的套接字标头

+1

不是一个答案,但你可能想看看Boost :: Asio。它是跨平台的*并且*带有适当的C++接口(在我的书中,这个接口击败了一个特定于Unix的C API)。因人而异。 – DevSolar 2010-10-26 13:34:40

+0

感谢DevSolar更多的信息和它确实有助于:) – nXqd 2010-10-26 19:01:11

回答

17

如果您已经安装了手册页,则第一站应为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 Specification

+0

感谢有另外一个地方,查找工具,包括文件夹是教授如何找到它 – nXqd 2010-10-26 11:59:11

+2

+1和它的衍生物(Ubuntu的,...)是'libc6-dev'包中的基本头文件(包括'sys/socket.h')。 '/ usr/include'下的地方是依赖于arch的。 – Default 2010-10-26 11:59:55

-1

它应该是#include <sys/socket.h>。您可能还需要包含sys/types.h

但是,如果这样做不成功,您能否给出一小段代码来源,包括您正在包含的文件#include以及如何以及您收到了哪些错误消息?

2

在新的Linux,例如Ubuntu的X86-64,虽然没有GCC安装,没有socket.h头文件,同时安装gcc,你可以find它在/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 
+0

在Debian有用:) – pevik 2016-03-31 11:41:14