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