如果我正确理解了手册页,则 fork 和 execve 进程的 fd 表将被复制到子进程并在 execve 中继续存在。另一方面,任何其他内存映射都在 execve 之后被销毁。
因此,当 proc 执行此操作(forks 和 execves)时,我会删除要删除的文件结构。
尽管如此,我还是在我大学的教科书中找到了一个例子:“如果 10 个进程打开一个文件,然后其中一半分叉而另一半被执行,那么内核中会有多少个文件结构?”
答案是 10“因为孩子们共享文件结构。”
但是,我认为它会是 5,因为 execved 的 procs 会破坏它们的文件结构
那么,这是否意味着文件结构在执行后仍保留在内核中?