stat.h
在osx 10.7的标题中,我在 fileflag 中找到了一个定义UF_TRACKED
。我用谷歌搜索了这个定义,但没有找到关于标志的任何信息。你能向我描述一下这面旗帜的含义吗?当我尝试将属性应用于放置在已安装文件夹上的文件时,我遇到了它。该文件夹是远程 osx 10.7.3 上的 HFS+ 文件夹。
也许我可以忽略它?在这种情况下会发生什么?
stat.h
在osx 10.7的标题中,我在 fileflag 中找到了一个定义UF_TRACKED
。我用谷歌搜索了这个定义,但没有找到关于标志的任何信息。你能向我描述一下这面旗帜的含义吗?当我尝试将属性应用于放置在已安装文件夹上的文件时,我遇到了它。该文件夹是远程 osx 10.7.3 上的 HFS+ 文件夹。
也许我可以忽略它?在这种情况下会发生什么?
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