假设我在Linux中有一个字符设备驱动程序,它在内核中分配一些内存来存储每个打开文件描述符的状态。
某些进程在驱动程序上打开一个fd,通过一些ioctls,该进程还为此状态提供了初始化参数。
ioctl
现在这个过程分叉。还将为子进程创建所有文件描述符。
fd特定状态将如何重复? AFAIK do_fork只复制内核知道的数据结构。
do_fork
子进程是否必须重新初始化fd,否则它将最终与父进程共享状态?
在fork或dup上没有重复打开的文件描述状态。所有这样的状态将在父母和孩子之间共享。
fork
dup