首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核-套接字文件描述符关闭位置

Linux内核-套接字文件描述符关闭位置
EN

Stack Overflow用户
提问于 2010-04-26 07:46:26
回答 1查看 2.3K关注 0票数 1

在linux内核中,关闭套接字的文件描述符发生在什么地方?我知道对于一个文件,文件的文件描述符会在fs/open.cs函数sys_close()中关闭。但是,对于套接字文件描述符,这是相同的位置还是其他位置?

另外,套接字是使用file.c alloc_fd来分配文件描述符,还是使用其他函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-26 10:23:25

是的,sys_close()是关闭所有文件描述符的入口点,包括套接字。

sys_close()调用filp_close(),后者在struct file对象上调用fput()。当放置了对struct file的最后一个引用时,fput()调用文件对象的.release()方法,对于套接字,该方法是net/socket.c中的sock_close()函数。

套接字代码使用get_unused_fd()put_unused_fd()来获取和释放文件描述符。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2710421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档