问题标签 [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.
filesystems - 文件系统索引分配:inode
我想知道是否有人可以仔细检查我对以下问题的回答。我不确定我是否正确理解了单间接块和双间接块。
一个磁盘块为 2KB,使用索引分配。文件的 inode 长度为 128 字节,其中 32 字节用于状态信息。剩余的 96 个字节用于索引条目 - 每个条目 4 个字节。
如果使用以下方案,文件中可以存储的最大数据量是多少?
一个。每个索引条目都是指向直接块的指针
湾。每个索引条目都是指向单个间接块的指针
C。前 22 个条目指向直接块,第 23 个条目是指向单个间接块的指针,第 24 个条目是指向双间接块的指针
c - Minix 内部碎片
可能的重复:
内部碎片
我最近一直在做一个项目,以递归方式列出目录中的所有文件并输出文件名、大小和路径。
我现在需要将内部碎片的数量添加到输出中,然后计算出目录中内部碎片的百分比。
我已经努力做到这一点。我需要 inode 编号(我从中获得stat()
)。然后,我需要跟踪该 inode 编号并遍历 inode 以找到最后一个块。然后我需要计算出这个块中有多少未使用的空间,这会给我内部碎片。
在我撕掉头发之前迫切需要帮助!
linux-kernel - 如何从给定的 inode 获取路径名、dentry 或 struct 文件?
我需要知道如何获取路径名dentry
或struct file
从给定的 inode 中获取。
我file_open
用来从路径名中获取struct file
,但总是给内核恐慌。我需要一种方法来比较我的 inode 列表中的一个 inode 与路径名中的一个 inode,或者比较磁盘中的所有 inode 以找到相应的路径名,然后与我的 inode 列表进行比较。
unix - 删除文件和索引节点
我正在阅读有关版本 6 unix 的文本,并且刚刚了解了 inode。我有以下问题:
假设我在一个目录中有一个文件,并且在其他地方有一个指向该文件的链接。我是否正确地说,如果我删除文件,inode 仍然存在,因为 refcount 不为 0?这是否意味着在链接存在时文件并没有真正删除,我可以通过 inode 号访问文件?
c++ - 如何检测您打开的文件在打开后被移动了
如标题所述:
- 我的程序打开一个文件。
- 有东西出现并移动了该文件。Inode 应该相同,但名称不同。
- 关闭文件,然后删除,但它不再存在
那么如何检测到它已被移动并删除正确的文件名呢?
有任何想法吗?
xml - XSLT 或 XPath:如何找到具有特定标记和文本的节点,然后将其提取到新的 xml 文件中?
我需要在 xml 文件中找到一个特定的节点,<example>Some text</example>
然后我想从 xml 文件中提取这个节点及其子元素并将其写入一个新的 xml 文件,然后我需要将原始 xml 文件中的其他剩余 xml 节点减去提取的节点提取到新的 xml 文件中。节点。
如何使用 xslt 或 xpath 执行此操作?
linux - 如何在两条路径中测试是否可硬链接?
我在一侧有文件路径以及我想要复制它们的新路径。
如何测试它们是否可以简单地硬链接或应该被复制?
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 配置中指定的。这可能是错的吗?
linux - 在struct inode中存储一些数据
您好,我是内核编程的新手。我正在编写一个基于 wrapfs 模板的小内核模块来实现备份机制。这纯粹是为了学习基础。
我正在扩展 wrapfs,以便在进行写入调用时,wrapfs 透明地在单独的目录中制作该文件的副本,然后对该文件执行写入。但我不想为每个写调用创建一个副本。
一种天真的方法可能是我检查该目录中是否存在文件。但我认为对于每个呼叫检查这可能是一个严厉的惩罚。
我还可以检查第一次写入调用,然后使用 private_data 属性存储该特定文件的值。但这不会存储在磁盘上。所以我需要再次检查。
我也在考虑利用修改时间。我可以节省修改时间。如果旧的修改时间在那个时间之前,那么只会创建一个副本,否则我不会做任何事情。我尝试为此使用 inode.i_mtime ,但它是在调用 write 之前修改的时间,应用程序也可以修改该时间。
所以我想在磁盘上的 inode 中存储一些值,表明它的备份是否已创建。那可能吗?欢迎任何其他建议或方法。
c - C程序中使用inode结构在Linux中将目录修改为文件
我想将目录更改为文件,我做了一些研究。在 Linux 中,inode 结构存储有关文件和目录的元数据。我想将文件保护模式从目录更改为文件,
有没有办法将目录更改为文件?如何通过C程序修改inode结构?