在linux系统上使用TCP编写服务器应用程序时,我遇到了一些问题。我的问题很少。
接收套接字FD
int sockFD = socket(..., ..., ...);
有什么区别
a)close(sockFD);
和
b)int sockCopy = sockFD; //copy the socketfd
close(sockCopy);
案例b不会关闭套接字为什么?
答案 0 :(得分:3)
套接字文件描述符存储在应用程序中的整数变量中,就像其他文件描述符一样。
内核通过关联的struct file
内的不同函数指针在内部区分不同的文件描述符类型。
没有区别; int sockCopy = sockFD; close(sockCopy);
将关闭套接字。内核并不关心你所谓的存储文件描述符的变量 - 所有它关心的是数值。