Unix系统文件表

2023-12-26

我对 Unix 系统文件表感到困惑。

  • 当两个或多个进程打开一个文件进行读取时,系统文件表是为每个进程创建单独的条目还是单个条目?

  • 如果为打开同一文件的多个进程创建单个条目,它们的文件偏移量也会相同吗?

  • If process 1 opens file1.txt用于阅读和process 2打开同一个文件file1.txt对于写入,系统文件表会创建一个或两个条目吗?


There are three "system file tables": There is a file descriptor table that maps file descriptors (small integers) to entries in the open file table. Each entry in the open file table contains (among other things) a file offset and a pointer to the in-memory inode table. Here's a picture: enter image description here (source: rich from www.cs.ucsb.edu now on archive.org https://web.archive.org/web/20160619025634if_/http://www.cs.ucsb.edu/%7Erich/class/cs170/notes/FileSystem/filetable.rich.jpg)

因此,打开的文件既没有一个文件表条目,也不是每个进程只有一个……每个进程都有一个open()调用,如果文件描述符是共享的dup()ed or fork()ed.

回答您的问题:

  1. 当两个或多个进程打开一个文件进行读取时,每次打开的打开文件表中都会有一个条目。甚至每个打开都有一个条目,如果one进程多次打开文件。

  2. 单个条目是not在打开文件表中为打开同一文件的不同进程创建(但内存 inode 表中只有一项)。

  3. 如果 file1.txt 在相同或两个不同的进程中打开两次,则有两个不同的打开文件表条目(但在内存 inode 表中只有一个条目)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix系统文件表 的相关文章

  • 如何根据操作系统系列拥有不同的依赖关系

    我正在编写一个跨平台库 它具有特定于平台的依赖关系 一个用于类 UNIX 平台 一个用于 Windows 这些板条箱仅在特定平台上编译 因此我不能正常地将它们全部添加到依赖项下 在我实际使用的 Rust 代码中cfg属性 例如 cfg un
  • 如何以“less”显示行号(GNU)

    执行的命令是什么less https linux die net man 1 less在左栏中显示行号 来自manual http unixhelp ed ac uk CGI man cgi less N 或 行号 导致在每个行的开头显示行
  • 在 Unix 中,我可以在目录中运行“make”而无需先 cd 到该目录吗?

    在 Unix 中 我可以运行make在没有的目录中cd首先进入该目录 make C path to dir
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 寻找下一个开放端口

    有没有什么办法 使用基本的 Unix 命令 找到下一个未使用的端口号 从端口 4444 开始向上 我通过 ssh 通过 openssh 进入 Windows XP 计算机 运行 Cygwin 工具并使用 bash shell 谢谢 戴夫 尝
  • 操作系统崩溃的常见原因[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有兴趣了解 操作系统崩溃 不限于Windows崩溃 最常见的技术原因 从操作系统编程的角度 有哪些 我正在寻找一个不像 打开太多应用
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • shell 脚本:错误的解释器:使用 pwd 时没有这样的文件或目录

    我想用 for 循环遍历目录中的文件 但这出现了 echo bad interpreter No such file or directory code bin bash count 0 dir pwd echo dir FILES ls
  • meld - GLib-GIO-ERROR**:系统上未安装 GSettings 架构

    经过近40个小时的努力 我终于安装了meld 3 14 2 在Redhat 6 3服务器的NFS共享上 安装了每个依赖项 最后似乎成功了 但最后一个错误需要解决 meld 20703 GLib GIO ERROR No GSettings
  • linux下如何获取昨天和前天?

    我想在变量中获取 sysdate 1 和 sysdate 2 并回显它 我正在使用下面的查询 它将今天的日期作为输出 bin bash tm date Y d m echo tm 如何获取昨天和前天的日期 这是另一种方法 对于昨天来说 da
  • 如何在gcc中打印UINT64_t?

    为什么这段代码不起作用 include
  • Python 用静态图像将 mp3 转换为 mp4

    我有x文件包含一个列表mp3我想转换的文件mp3文件至mp4文件带有static png photo 似乎这里唯一的方法是使用ffmpeg但我不知道如何实现它 我编写了脚本来接受输入mp3文件夹和一个 png photo 然后它将创建新文件
  • 将参数传递给调试器中的 perl 文件并在系统执行的文件中设置断点

    因此 我使用 perl d file pl 在 perl 调试器中运行一个文件 但 file pl 也应该接受参数 如何向 file pl 提供参数 还有一个问题 file pl 中有这一行 system file2 pl 如果 file2
  • 在 Unix 中添加用户和组

    有谁知道在unix中添加用户和组以及删除它们的api吗 我想以编程方式执行此操作 谢谢 坦率 我开始查看一些系统调用并发现以下内容 请注意 它们具有不同的标准 因此并非所有标准都可以在您的 Unix 版本上运行 getpwent setpw
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • tar 和 zip 有什么区别? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 tar 和 zip 有什么区别 每个的用例是什么 tar其本身只是将文件捆绑在一起 结果称为tarball 尽管zip也应用压缩 通常你使用gzip随
  • 为什么总是./configure;制作;进行安装;作为 3 个单独的步骤?

    每次从源代码编译某些内容时 都会经历相同的 3 个步骤 configure make make install 我明白 将安装过程分为不同的步骤是有意义的 但我不明白 为什么这个星球上的每个编码员都必须一次又一次地编写相同的三个命令才能完成
  • awk: hping: 打印 icmp 发起/接收之间的差异

    我有以下输出hping http ports su net hping在 OpenBSD 上 hping icmp ts www openbsd org HPING www openbsd org re0 129 128 5 194 icm
  • 使用带有curl 的内部字段分隔符

    当我做 ls IFS l 我得到了我期望的输出 当我做 curl IFShttp www google com 我不 我是否误解了内部字段分隔符 如何在不使用任何空格字符的情况下运行curl 命令 您需要将变量放在大括号内 否则 shell
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • Pywinauto type_keys() 省略字符串中的“%”

    当尝试输入字符串时 customer asked for 30 discount 通过使用到一个表单type keys 在 Pywinauto 0 6 5 中 它发送的输出是 customer asked for 30 discount 省
  • 有关在我的计算机中安装 PCL 的问题

    当我尝试安装 python pcl PCL 是用于像激光雷达数据一样演示的点云库 我按照上的说明进行操作https github com strawlab python pcl https github com strawlab pytho
  • 如何使用 Google Mock 模拟模板方法?

    我正在尝试模拟模板方法 这是包含要模拟的方法的类 class myClass public virtual myClass template
  • clang++:错误:链接器命令失败,退出代码 1 Qt Android

    无法构建 Qt 示例 在 Windows 中构建时出现错误 E android ndk r20 windows x86 64 android ndk r20 toolchains aarch64 linux android 4 9 preb
  • 动态端口和 AWS 应用程序负载均衡器和 ECS

    ELB 后面的 Docker 容器获取自动注册到 ELB 的动态端口 以便它们可以将流量重定向到它们 为了使 ELB 可以访问您的 Web 服务器 您必须打开来自安全组内的所有这些端口 1024 65535 有没有办法不必向一系列端口开放安
  • fpdf - 返回上一页

    我正在使用 fpdf 生成 pdf 发票 有些发票包含很多项目 详细信息需要进入第二页 但是 我需要在第一页上显示总数和其他详细信息 现在 如果我可以添加这样的新页面 pdf gt AddPage 但是 这会将所有内容放入第二页 无论此声明
  • 如何保护应用程序池免受会话序列化异常的影响?

    我们正在使用进程外会话提供程序 ScaleOut 对于 ASP NET 应用程序 我们注意到when未正确设置反序列化的对象会无意中进入会话最终导致整个进程终止 重现和处理这个场景是更有趣的地方 终止进程的异常是在会话状态中的任何 StaO
  • ruby Enumerable#first 与 #take

    ruby 枚举 数组有什么区别first n and take n 我依稀记得take与惰性评估有关 但我不知道如何使用它来做到这一点 并且在谷歌搜索或文档中找不到任何有用的东西 take 是一个很难通过谷歌搜索的方法名称 first n
  • tf.gradients 如何管理复杂的函数?

    我正在研究复值神经网络 对于复值神经网络 通常使用 Wirtinger 微积分 那么导数的定义是 考虑到由于刘维尔定理 函数是非全纯的 如果你看广濑彰的书 复值神经网络 进展与应用 第 4 章方程 4 9 定义 当然 偏导数也是使用维廷格微
  • WooCommerce - 为某些特定用户角色启用“零税率”税级

    在 wy WooCommerce 网站中 我将销售给经销商 AND 经销商 问题是经销商免税 因此我需要一个自定义函数来为某些客户角色启用零税率 如果 WooCommerce 自己做到这一点 那将是最佳选择 但事实并非如此 所以我的问题是
  • 如何获取大页面大小的值?

    我希望直接从我的 C 代码中获取大页面大小的值 而无需运行 bash 命令 从 bash 我可以做到这一点 grep pse proc cpuinfo gt dev null echo 2M huge page size are suppo
  • 有谷歌云存储模拟器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 出于测试目的 我想模拟 Cloud Storage 因为它会减慢测试速度 有谷歌云存储模拟器吗 谷歌有
  • 如何将视图绑定与包含的视图一起使用?

    View Binding 在 v3 6 中发布 Docs https developer android com topic libraries view binding https developer android com topic
  • QWidget / X11:防止通过鼠标单击激活/聚焦窗口

    我想用 Qt QML 开发一个系统范围的屏幕键盘 通过 xlib 注入按键事件效果很好 我现在的问题 如果单击键盘按钮 具有所选输入字段的窗口将失去焦点 因此 按键事件将不会传递到先前选择的输入字段 那么有人知道如何防止 QWidget 被
  • 待办事项列表项文本与以下列表项的文本重叠

    我使用 jQuery 和 Bootstrap 创建了一个待办事项列表 如果您在列表容器中输入的文本长度超过单行 则第一行中不适合的内容将与下一行中的现有列表项文本重叠 这是我的 CSSul and li元素 视图CodePen https
  • 如何处理要求使用 Ansible 任务输入的命令?

    我正在学习 Ansible 我想知道如何编写一个任务来处理以下命令
  • readdir() 32/64 兼容性问题

    我正在尝试让一些旧的遗留代码在新的 64 位系统上运行 但目前陷入困境 下面是一个小 C 文件 我用它来测试当前正在中断的实际程序中存在的功能 define POSIX SOURCE include
  • Java 8 流和映射值得吗?

    感觉 java 8 流和映射函数是如此冗长 它们并不是真正的改进 例如 我编写了一些使用集合生成另一个经过修改的集合的代码 private List
  • 使用 GitFlow 保护 Github 分支

    我有一个存储库 其中的开发分支受到保护 并且我正在使用 GitFlow 分支模型 有两个分支 开发 包含当前正在开发的功能 和主控 最新部署的生产代码 我的开发分支阻止通过 GitHub 的受保护分支直接进行提交 当您使用 GitFlow
  • Unix系统文件表

    我对 Unix 系统文件表感到困惑 当两个或多个进程打开一个文件进行读取时 系统文件表是为每个进程创建单独的条目还是单个条目 如果为打开同一文件的多个进程创建单个条目 它们的文件偏移量也会相同吗 If process 1 opens fil