➤ 從原理到實作:深度剖析 macOS 的檔案事件通知機制
✤ https://www.vegardstikbakke.com/kqueue/
本文作者分享了他在開發自動化工具 `reload` 時的心路歷程,旨在擺脫對大型第三方函式庫的依賴,轉而深入理解 macOS 核心的 `kqueue` 機制。文章詳細解析瞭如何利用 `EVFILT_VNODE` 濾鏡與 `NOTE_WRITE` 事件來監控檔案變更,並透過 C 語言實作原型驗證邏輯。隨後,作者展示瞭如何將此機制整合進 Go 語言程式中,並特別強調了處理檔案描述符(File Descriptor)洩漏的關鍵技巧——使用 `O_CLOEXEC` 確保子行程執行時能正確關閉這些監控資源。
+ 這篇文章非常實用,對於想要深入瞭解 macOS 底層開發的開發者來說,直接操作 `kqueue` 比起使用黑盒子的 `fsnotify` 能獲得更精準的控制。
+ `O_CLOEXEC` 的處理確實是這類監控工具最容易被忽
#macOS #kqueue #系統程式設計 #Go #檔案監控