【问题标题】:Re-using an inode field重用 inode 字段
【发布时间】:2011-10-01 00:56:50
【问题描述】:

我在一个项目中需要做一些簿记,即表明程序 A 是否访问了特定文件。我计划将此信息存储在 inode 中,因为使用其他附加数据结构效率低下。 我计划在 inode 数据结构中重用字段 i_mode 。有什么建议。此外,我不知道如何从用户空间写入 inode 数据结构。我怎么做?谢谢...

【问题讨论】:

  • 对我来说,这听起来绝对是解决您描述的问题的错误方法。

标签: c linux inode ext3


【解决方案1】:

文件系统照顾inode;它甚至不会让超级用户直接修改 inode(尽管 root 可以随时访问卸载的(块或字符)设备来更改它)。

除非您编写代码来修改文件系统(内核模块),否则您将无法按照您的意愿进行操作。找到另一种方法。

【讨论】:

    【解决方案2】:

    文件系统不是为解决用户问题而设计的。您希望记录更改的文件,其他人希望记录新/删除的文件。

    我只看到以下选项:

    • inotify
    • 保持感兴趣的文件/目录的状态并检查一次更改

    只是为了好玩,您可以考虑:

    • 内核模块
    • 实现您自己的文件系统

    【讨论】:

      【解决方案3】:

      经过一番谷歌搜索后,发现“sticky bit”今天用的不多,我们可以使用它,也可以从用户空间修改它。

      【讨论】:

      • 这听起来对我来说仍然是错误的解决方案。请注意,任何使用八进制权限对您的文件进行 chmod 的系统管理员都会取消您的粘性位。您还应该知道,操作系统的未来版本可能会出于自己的目的重新使用粘性位。 NetBSD 目前将粘性位标记为“保留供将来使用”
      猜你喜欢
      • 2013-01-26
      • 2014-07-30
      • 2013-04-11
      • 2011-04-06
      • 2012-04-15
      • 2011-12-20
      • 2014-04-30
      • 2015-02-23
      • 2016-01-27
      相关资源
      最近更新 更多