首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享文件描述符

共享文件描述符
EN

Unix & Linux用户
提问于 2018-03-08 11:48:42
回答 1查看 8.5K关注 0票数 4

如果文件描述符特定于每个进程(即两个进程可以使用相同的文件描述符id来引用不同的打开文件),那么如何能够通过套接字等共享文件描述符(例如共享mmap)?

它是否依赖于在每个进程下将内核映射到相同的数字地址范围?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-03-08 13:49:16

当您在套接字上共享文件描述符时,内核会进行中介。您需要使用这个cmsg(3)准备数据,使用sendmsg(2)发送数据,并使用recvmsg(2)接收数据。内核涉及后两个操作,它处理从文件描述符到传输文件描述符所需的任何数据的转换,并使文件描述符在接收过程中可用。

不同进程中相同的fd如何指向同一个文件?提供了有用的背景。发送过程发送一个文件描述符,这意味着与其(私有)文件描述符表有关;内核知道在系统范围内打开的文件表中映射到什么,并根据需要在接收进程的文件描述符表中创建一个新条目。

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

https://unix.stackexchange.com/questions/429009

复制
相关文章

相似问题

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