Detecting file changes on macOS with kqueue
2 months ago
- #macOS
- #kqueue
- #Go
- 探讨使用kqueue事件通知接口在macOS上检测文件变化的方法。
- 介绍了Go语言中的reload工具,用于在文件变化时重新编译C文件并重建静态网站。
- 详细说明了kqueue系统,包括kevent数据结构以及EVFILT_VNODE和NOTE_WRITE等过滤器。
- 涵盖了在C语言中实现针对指定文件和目录的文件监控。
- 转向Go语言实现,提供了设置kqueue、添加文件和处理事件的代码片段。
- 讨论了文件描述符泄露、可扩展性限制等问题,以及替代方案如FSEvents。
- 强调了实际操作中的考虑因素,比如使用O_CLOEXEC防止子进程继承描述符。