我有一个plist文件,使用FSEvents API监视更改。
_fileStream = FSEventStreamCreate(NULL,
&fsevents_apps_callback,
&context,
(__bridge CFArrayRef)[NSArray arrayWithObject:@"/"],
kFSEventStreamEventIdSinceNow,
(CFAbsoluteTime)0.2,
kFSEventStreamCreateFlagFileEvents);
// start the stream on the main event loop
FSEventStreamScheduleWithRunLoop(_fileStream,
CFRunLoopGetCurrent(),
kCFRunLoopDefaultMode);
FSEventStreamStart(_fileStream);
我使用sudo默认值写入plist。 Sudo默认/ Library / Application Support / myApp / file.plist
在我的callBack函数中,事件路径结果是/ Library / Application Support / myApp / file.plist.52738
我担心它被检测为file.plist.2332(一些随机数)而不是file.plist
任何输入为什么会出现这种行为?
如果我们使用PlistBuddy来编写它,它看起来都很好,事件路径是/ Library / Application Support / myApp / file.plist。
答案 0 :(得分:0)
由于这个原因,可以看到这种行为:
cfprefsd
并以root身份和登录用户身份运行。它通过磁盘上的持久性完成所有缓存和刷新以及协调。