【问题标题】:Getting wrong file creation date & vnode creation date in user process and kauth system respectively分别在用户进程和 kauth 系统中获取错误的文件创建日期和 vnode 创建日期
【发布时间】:2014-05-13 12:01:55
【问题描述】:

我正在使用 kauth 系统来监控文件特定的更改。 在我的 KAUTH_FILEOP_SCOPE 侦听器中,当我收到任何通知时,我将其发送(入队)到用户进程。 在我尝试使用

访问文件创建日期的用户进程中
[[NSFileManager defaultManager] attributesOfItemAtPath:path error:&error];

1904 年 1 月 1 日。

我尝试在 KAUTH_FILEOP_CLOSE 情况下将 vnode 创建时间传递给用户进程 也是 1904 年 1 月 1 日。

[NSDate dateWithTimeIntervalSince1970:-2082844800];

如果我在用户进程中引入睡眠假设 2 到 3 秒。我得到了正确的创建日期。

为什么系统会这样? 天气我做错了什么?

我已经搜索并进行了许多研发以找到解决方案,但没有成功。 由于我不想在我的程序中睡觉,解决方案是什么?

【问题讨论】:

    标签: objective-c xcode cocoa kernel-extension


    【解决方案1】:

    您可能会发现 kauth 事件在文件修复之前触发。你能不使用 kevents 或类似的通知机制吗?我怀疑它会在稍后阶段触发。

    【讨论】:

    • 其实我只需要使用 kauth 范围。所以试图在其中找到解决方案。
    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多