FSEvents

The FSEvents API in macOS allows applications to register for notifications of changes to a given directory tree.[1] 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.[2]

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.[3]

Mac OS X 10.7 (Lion) added the ability to register for file modification notifications.[4]

  1. ^ "Leopard Technology Series for Developers: OS Foundations". 2007-10-26. Retrieved 2008-08-21.
  2. ^ "File System Events Programming Guide: Using the File System Events API". 2012-12-13. Retrieved 2017-10-13.
  3. ^ "FSEvents.h -- FSEventStreamCallback". 2011-05-05. Archived from the original on 2011-05-04. Retrieved 2011-08-16.
  4. ^ "FSEvents reference -- kFSEventStreamCreateFlagFileEvents". Retrieved 2017-10-13.