gpt4 book ai didi

c - `close(fd)` 是否破坏文件表条目和/或 vnode 表条目?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:03 25 4
gpt4 key购买 nike

在 Unix 中

#include <unistd.h>
int close(int fd);
  • close(fd) 还必须销毁与 fd 关联的文件表条目是否正确?是的,即使有另一个文件描述符引用同一个文件表条目?

  • close(fd) 是否也销毁与 vnode 表条目关联的 vnode 表条目,或者不一定?是的,即使有另一个文件表条目引用同一个 vnode 表条目?

谢谢。

对于“进程文件描述符表”、“(内核)文件表”、“vnode”,参见http://www.cs.rpi.edu/academics/courses/fall04/os/c18/

注意:我的问题来自APUE。其实我对Linux很感兴趣,但是Linux没有vnode,而是通用的inode结构。所以“vnode”仍然适用,我必须要求 Unix。

最佳答案

close 关闭文件描述符。如果该描述符是最后一个引用相应打开文件描述 的描述符,则后者将被关闭,这可能会带来进一步的副作用。这是就 Unix 的现代意义而言,就单一 Unix 规范/POSIX 而言。

我不确定 vnode 是什么意思;我假设它是一个历史 unix 的一部分,并且与打开的文件描述有一些对应关系。

关于c - `close(fd)` 是否破坏文件表条目和/或 vnode 表条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52081604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com