问题标签 [inode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1682 浏览

filesystems - 文件系统索引分配:inode

我想知道是否有人可以仔细检查我对以下问题的回答。我不确定我是否正确理解了单间接块和双间接块。

一个磁盘块为 2KB,使用索引分配。文件的 inode 长度为 128 字节,其中 32 字节用于状态信息。剩余的 96 个字节用于索引条目 - 每个条目 4 个字节。

如果使用以下方案,文件中可以存储的最大数据量是多少?

一个。每个索引条目都是指向直接块的指针

湾。每个索引条目都是指向单个间接块的指针

C。前 22 个条目指向直接块,第 23 个条目是指向单个间接块的指针,第 24 个条目是指向双间接块的指针

0 投票
0 回答
97 浏览

c - Minix 内部碎片

可能的重复:
内部碎片

我最近一直在做一个项目,以递归方式列出目录中的所有文件并输出文件名、大小和路径。

我现在需要将内部碎片的数量添加到输出中,然后计算出目录中内部碎片的百分比。

我已经努力做到这一点。我需要 inode 编号(我从中获得stat())。然后,我需要跟踪该 inode 编号并遍历 inode 以找到最后一个块。然后我需要计算出这个块中有多少未使用的空间,这会给我内部碎片。

在我撕掉头发之前迫切需要帮助!

0 投票
2 回答
2903 浏览

linux-kernel - 如何从给定的 inode 获取路径名、dentry 或 struct 文件?

我需要知道如何获取路径名dentrystruct file从给定的 inode 中获取。

file_open用来从路径名中获取struct file,但总是给内核恐慌。我需要一种方法来比较我的 inode 列表中的一个 inode 与路径名中的一个 inode,或者比较磁盘中的所有 inode 以找到相应的路径名,然后与我的 inode 列表进行比较。

0 投票
2 回答
1106 浏览

unix - 删除文件和索引节点

我正在阅读有关版本 6 unix 的文本,并且刚刚了解了 inode。我有以下问题:

假设我在一个目录中有一个文件,并且在其他地方有一个指向该文件的链接。我是否正确地说,如果我删除文件,inode 仍然存在,因为 refcount 不为 0?这是否意味着在链接存在时文件并没有真正删除,我可以通过 inode 号访问文件?

0 投票
3 回答
356 浏览

c++ - 如何检测您打开的文件在打开后被移动了

如标题所述:

  • 我的程序打开一个文件。
  • 有东西出现并移动了该文件。Inode 应该相同,但名称不同。
  • 关闭文件,然后删除,但它不再存在

那么如何检测到它已被移动并删除正确的文件名呢?

有任何想法吗?

0 投票
1 回答
5654 浏览

xml - XSLT 或 XPath:如何找到具有特定标记和文本的节点,然后将其提取到新的 xml 文件中?

我需要在 xml 文件中找到一个特定的节点,<example>Some text</example>

然后我想从 xml 文件中提取这个节点及其子元素并将其写入一个新的 xml 文件,然后我需要将原始 xml 文件中的其他剩余 xml 节点减去提取的节点提取到新的 xml 文件中。节点。

如何使用 xslt 或 xpath 执行此操作?

0 投票
2 回答
83 浏览

linux - 如何在两条路径中测试是否可硬链接?

我在一侧有文件路径以及我想要复制它们的新路径。

如何测试它们是否可以简单地硬链接或应该被复制?

0 投票
1 回答
388 浏览

memory - CentOS 中的随机 Inode/Ram 缓存丢弃

我在 RAID10 设置中运行具有 24GB 内存和 4 个 SAS 驱动器的 CentOS 5.7 机器(64 位)。这台机器运行 nginx/1.0.10、php-fpm & xcache。大约一个月前,这台机器的 RAM 使用情况发生了变化。

大约每隔几个小时,“缓存”就会从 RAM 中刷新一次,这恰好发生在“索引节点表使用率”下降时。我很确定这些下降是相关的。(见附上的2张图片)。

在此处输入图像描述 在此处输入图像描述

这个服务器托管了很多小文件(20M 都是几 KB 大)。没有多少文件被删除(可能每小时 100 个(总大小最大为几 MB)),不足以解释巨大的 Inode 表丢失。

我也没有运行可能导致这些下降的 crons。

Sar -r输出: http: //pastebin.com/C4D0B79i

我的问题:为什么会发生这些巨大的 RAM/Inode 使用率下降?如何让 Nginx/PHP 使用我所有的服务器 RAM?

编辑:我把我的配置放在这里:http ://pastebin.com/iEWJchc4 和 LSOF 的输出:http: //hostlogr.com/lsof.txt。我确实注意到大量 php-fpm 进程进入 /dev/zero。这是在我的 xcache 配置中指定的。这可能是错的吗?

0 投票
2 回答
675 浏览

linux - 在struct inode中存储一些数据

您好,我是内核编程的新手。我正在编写一个基于 wrapfs 模板的小内核模块来实现备份机制。这纯粹是为了学习基础。

我正在扩展 wrapfs,以便在进行写入调用时,wrapfs 透明地在单独的目录中制作该文件的副本,然后对该文件执行写入。但我不想为每个写调用创建一个副本。

一种天真的方法可能是我检查该目录中是否存在文件。但我认为对于每个呼叫检查这可能是一个严厉的惩罚。

我还可以检查第一次写入调用,然后使用 private_data 属性存储该特定文件的值。但这不会存储在磁盘上。所以我需要再次检查。

我也在考虑利用修改时间。我可以节省修改时间。如果旧的修改时间在那个时间之前,那么只会创建一个副本,否则我不会做任何事情。我尝试为此使用 inode.i_mtime ,但它是在调用 write 之前修改的时间,应用程序也可以修改该时间。

所以我想在磁盘上的 inode 中存储一些值,表明它的备份是否已创建。那可能吗?欢迎任何其他建议或方法。

0 投票
1 回答
2220 浏览

c - C程序中使用inode结构在Linux中将目录修改为文件

我想将目录更改为文件,我做了一些研究。在 Linux 中,inode 结构存储有关文件和目录的元数据。我想将文件保护模式从目录更改为文件,

有没有办法将目录更改为文件?如何通过C程序修改inode结构?