【问题标题】:What does the FSEvent flag kFSEventStreamEventFlagItemInodeMetaMod mean?FSEvent 标志 kFSEventStreamEventFlagItemInodeMetaMod 是什么意思?
【发布时间】:2013-05-15 14:00:52
【问题描述】:

标志kFSEventStreamEventFlagItemInodeMetaMod 何时设置?在Apple's developer documentation 中,它表示值是:

kFSEventStreamEventFlagItemInodeMetaMod = 0x00000400

但它没有解释何时设置。

谢谢!

【问题讨论】:

    标签: macos fsevents


    【解决方案1】:

    该标志是可以传递给您的 FSEventStreamCallback 函数的众多标志之一:

      kFSEventStreamEventFlagItemCreated = 0x00000100,
      kFSEventStreamEventFlagItemRemoved = 0x00000200,
      kFSEventStreamEventFlagItemInodeMetaMod = 0x00000400,
      kFSEventStreamEventFlagItemRenamed = 0x00000800,
      kFSEventStreamEventFlagItemModified = 0x00001000,
      kFSEventStreamEventFlagItemFinderInfoMod = 0x00002000,
      kFSEventStreamEventFlagItemChangeOwner = 0x00004000,
      kFSEventStreamEventFlagItemXattrMod = 0x00008000,
      kFSEventStreamEventFlagItemIsFile = 0x00010000,
      kFSEventStreamEventFlagItemIsDir = 0x00020000,
      kFSEventStreamEventFlagItemIsSymlink = 0x00040000
    

    这是在文件系统 (FS) 事件发生时调用的回调。

    有趣的是,即使是 FSEvents.h 文件也没有对这些事件标志提供任何有用的详细说明。但大概是在创建、删除、重命名或修改项目等时调用回调。

    现在,关于 iNode:

    Inodes are a unique ID that the Macintosh file system uses to track files。如果与文件关联的 inode 编号被更改或以某种方式修改,我认为 是在使用“kFSEventStreamEventFlagItemInodeMetaMod”调用您的回调时。

    【讨论】:

    • 这似乎不是一个权威的答案。这是信息性的,但实际的问题是“什么时候设置?”即使在查看其他标志的列表时,“kFSEventStreamEventFlagItemModified”也是可以传递的另一个标志,因此与所陈述的相比,这会使它们看起来是互斥的:“如果与文件关联的 inode 编号已更改或以某种方式修改”
    猜你喜欢
    • 2014-06-04
    • 2014-02-27
    • 2020-09-25
    • 1970-01-01
    • 2011-04-29
    • 2012-11-10
    • 2022-01-14
    • 2013-05-01
    • 2014-03-19
    相关资源
    最近更新 更多