什么是网络套接字的文件描述符?以及如何获得它?

时间:2014-02-21 22:02:07

标签: c linux sockets networking file-descriptor

我想知道什么是网络套接字的文件描述符以及如何获取它?我相信这是一个数字?

2 个答案:

答案 0 :(得分:3)

这确实是一个数字,您可以通过发出socket(2)系统调用来获取它。它存储在流程的task_struct中,您需要它来发送或接收数据。

更确切地说,内核使用文件描述符来查找存储在File Objects内的files_struct结构中的task_struct。它的行为类似于位图,其中文件描述符的编号表示File Object在该结构中占据的位置。

答案 1 :(得分:2)

什么是'the'网络套接字?如果它是您创建的套接字,则它将是socket()或accept()的返回值。如果您正在编写守护程序,则套接字将由代表您的accept()确定 - 例如,/ etc / xinetd将其设置为0,1和2。