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