来自stat.h的UF_TRACKED文件标志

时间:2012-05-15 19:57:05

标签: macos unix filesystems osx-lion hfs

在osx 10.7的头文件stat.h中,我发现在fileflag UF_TRACKED上定义。我用google搜索定义,但没有发现任何有关旗帜的信息。你能描述一下这面旗帜是什么意思吗?当我尝试将属性应用于放置在已安装文件夹上的文件时,我遇到了它。该文件夹是远程osx 10.7.3上的HFS +文件夹。也许我可以忽略它?那种情况会发生什么?

1 个答案:

答案 0 :(得分:1)

UF_TRACKED是一个标志,它告诉HFS在用户模式下对文件的dentry的任何更改(即重命名或删除,以及元数据的更改,但不是文件修改)向跟踪的文件处理程序发送事件。您可以在头文件中看到:

#define UF_TRACKED      0x00000040  /* file renames and deletes are tracked */

处理此问题的代码在内核中,bsd / hfs / hfs_vfsutils.c:

int
check_for_tracked_file(struct vnode *vp, time_t ctime, uint64_t op_type, void *arg)
{
        int tracked_error = 0, snapshot_error = 0;

        if (vp == NULL) {
                return 0;
        }

        if (VTOC(vp)->c_bsdflags & UF_TRACKED) {
 ... 

在整个地方调用,主要来自hfs_vnops.c