Согласно документации Apple в обратном вызове FSEvents
,
/* These flags are only set if you specified the FileEvents */
/* flags when creating the stream. */
kFSEventStreamEventFlagItemCreated = 0x00000100,
kFSEventStreamEventFlagItemRemoved = 0x00000200,
kFSEventStreamEventFlagItemInodeMetaMod = 0x00000400,
kFSEventStreamEventFlagItemRenamed = 0x00000800,
kFSEventStreamEventFlagItemModified = 0x00001000,
kFSEventStreamEventFlagItemFinderInfoMod = 0x00002000,
kFSEventStreamEventFlagItemChangeOwner = 0x00004000,
kFSEventStreamEventFlagItemXattrMod = 0x00008000,
kFSEventStreamEventFlagItemIsFile = 0x00010000,
kFSEventStreamEventFlagItemIsDir = 0x00020000,
kFSEventStreamEventFlagItemIsSymlink = 0x00040000
Однако я трижды проверил, что при вызове * 1008 не установлен флаг kFSEventStreamCreateFlagFileEvents
*
FSEventStreamRef FSEventStreamCreate(
CFAllocatorRef allocator,
FSEventStreamCallback callback,
FSEventStreamContext *context,
CFArrayRef pathsToWatch,
FSEventStreamEventId sinceWhen,
CFTimeInterval latency,
FSEventStreamCreateFlags flags);
Но что бы я ни делал, флаги kFSEventStreamEventFlagItem*
все еще устанавливаются, когда события передаются мне из FSEvents
API.Я подозреваю, что это ошибка, но я не совсем уверен.Я использую OS X Lion 10.7.2
Пример кода можно найти здесь.http://stuconnolly.com/downloads/scevents/
РЕДАКТИРОВАТЬ
Вопрос:
Кто-нибудь еще испытывал такие же результаты?
Могу ли я проверить это поведениедля файловых флагов событий?