Linux套接字描述符

Linux套接字描述符,linux,sockets,Linux,Sockets,我正在阅读一篇关于unix域套接字的教程 通过搜索,我发现套接字描述符与文件描述符相同,并且指向文件描述符表中的一个条目 如果这是真的,我想问,对于指向打开文件的inode的fd,套接字描述符的条目是否也包含套接字文件的inode 同样在示例代码中,在服务器接受连接后: len = sizeof(struct sockaddr_un); s2 = accept(s, &remote, &len); s2将指向什么(如果套接字描述符类似于fd,s2将指向文件描述符表中的哪个条目)

我正在阅读一篇关于unix域套接字的教程

通过搜索,我发现套接字描述符与文件描述符相同,并且指向文件描述符表中的一个条目

如果这是真的,我想问,对于指向打开文件的inode的fd,套接字描述符的条目是否也包含套接字文件的inode

同样在示例代码中,在服务器接受连接后:

len = sizeof(struct sockaddr_un);
s2 = accept(s, &remote, &len);
s2将指向什么(如果套接字描述符类似于fd,s2将指向文件描述符表中的哪个条目)

另外,unix域套接字API是否只对下面的套接字文件使用open、read和write?

我认为“s2”只是在客户端侦听的另一个套接字描述符。以下是accept的手册页:

http://man7.org/linux/man-pages/man2/accept.2.html

基本上,正在发生的事情(假设我正在查看Beej站点上的正确代码)是创建一个套接字描述符,它可以接受连接。当实际建立连接时,您将创建另一个特定于该连接的套接字。这可能会让事情更清楚一些。

是的,它将有一个特定的inode条目,因为socket也是文件系统的一个资源,它是devfs的一部分

您可以通过
lsof
命令查找套接字关联fd详细信息