NTe*_*Tek 1 kernel linux-kernel
在 linux 内核中,套接字文件描述符的关闭发生在什么地方?我知道对于一个文件,文件的文件描述符在 fs/open.cs 函数 sys_close() 中关闭。但是,对于套接字文件描述符,这是同一位置还是其他位置?
另外,套接字是使用 file.c alloc_fd 来分配文件描述符还是使用其他一些函数?
是的,sys_close()是关闭所有文件描述符(包括套接字)的入口点。
sys_close()调用filp_close(),调用fput()的上struct file对象。当对 的最后一个引用struct file被放置时,fput()调用文件对象的.release()方法,对于套接字来说,它是 中的sock_close()函数net/socket.c。
套接字代码使用get_unused_fd()和put_unused_fd()来获取和释放文件描述符。
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |