内核状态如何在fork上重复?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内核状态如何在fork上重复?相关的知识,希望对你有一定的参考价值。

假设我在Linux中有一个字符设备驱动程序,它在内核中分配一些内存来存储每个打开文件描述符的状态。

某些进程在驱动程序上打开一个fd,通过一些ioctls,该进程还为此状态提供了初始化参数。

现在这个过程分叉。还将为子进程创建所有文件描述符。

fd特定状态将如何重复? AFAIK do_fork只复制内核知道的数据结构。

子进程是否必须重新初始化fd,否则它将最终与父进程共享状态?

答案

forkdup上没有重复打开的文件描述状态。所有这样的状态将在父母和孩子之间共享。

以上是关于内核状态如何在fork上重复?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 github 上更新 fork [重复]

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

Linux内核 fork 源码分析

linux gcc中fork()的工作[重复]

处理屏幕旋转上的片段重复(带有示例代码)

Linux中的进程 --fork,exec,守护进程分析