我在FSEvents上看到奇怪的行爲,我在恢復模式下掛載我的驅動器,並在重新啓動時在我的流中獲取零fsevents。 我做到以下幾點:FSEvents處理由其他操作系統更改的磁盤
- 啓動定期 與FSEventsGetCurrentEventId()
- 引導恢復模式,並在觀看路徑修改文件
- 重新啓動系統
- 記錄當前事件
發生這種情況時,我使用fsevents API時根本沒有收到任何事件。它在kFSEventStreamEventFlagHistoryDone sentinel中發送的唯一標誌,即使我在常規操作系統上做了其他更改。
這ars technica review似乎意味着,當你安裝一些其他的設備上,你應該得到的kFSEventStreamEventFlagMustScanSubDirs標誌,但我沒有看到這種行爲。有沒有人遇到過這個?有沒有更好的方法來檢測和處理在操作系統關閉的情況下驅動器已安裝在別處的情況?
更新:我嘗試了從linux啓動和修改文件系統的相同的東西。無論如何,我沒有得到0事件的奇怪行爲,但我也沒有從我更改的目錄或MustScanSubdirs標誌中獲得事件。
更新2:在this thread,接受的迴應說,當這種情況發生時,時間機器在上述情況下檢測到日誌已過期。任何人都知道如何檢測日誌是否過期?這個日期可以用來代替一個標誌。