Hacker News new | ask | show | jobs
by ziahamza 4136 days ago
I dont think kqueue fulfils the need of listening on file system events. Mac OSX has FS Events, to fill the need of inotify. Kqueue is more of a replacement for Epoll and works consistently across all file descriptors, not necessary for listening events on file paths.
3 comments

Please google the kqueue man page. There's many filters for kqueues. Specifically look at the VNODE filter.

Here's the link: https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2

You want to watch a directory? Open it and register it with the VNODE filter. You can watch a file for delete, rename, extend, write etc. OpenBSD can even watch TRUNCATE events.

You can use a kqueue filter for userspace events between threads, timers, signals, process states, asynchronous io, writability, and readability of fds.

It's quite generic and fairly evenly supported across BSD derivatives including Mac OS X.

I'm almost 100% certain FSEvents uses kqueue internally. You can definitely use kqueue for the same things you'd need inotify for on Linux.