The FSEvents API in macOS allows applications to register for notifications of changes to a given directory tree. Whenever the filesystem is changed, the kernel passes notifications via the special device file
/dev/fsevents to a userspace process called
fseventsd. This process combines multiple changes to a single directory tree that occur within a short period of time, then notifies applications that have registered for changes to the affected directory.
Until Mac OS X 10.7, FSEvents did not "watch" the filesystem, such as Linux's inotify: the API provided no notifications for changes to individual files. An application was able to register to receive changes to a given directory, and had to determine for itself which file or files were changed.
Mac OS X 10.7 (Lion) added the ability to register for file modification notifications.
- ^ "Leopard Technology Series for Developers: OS Foundations". 2007-10-26. Retrieved 2008-08-21.
- ^ "File System Events Programming Guide: Using the File System Events API". 2012-12-13. Retrieved 2017-10-13.
- ^ "FSEvents.h -- FSEventStreamCallback". 2011-05-05. Archived from the original on 2011-05-04. Retrieved 2011-08-16.
- ^ "FSEvents reference -- kFSEventStreamCreateFlagFileEvents". Retrieved 2017-10-13.