Implementing tail -f
Implementing tail -f is surprisingly difficult and complicated…
Quora
The basic problem is to use the available system calls on the host operating system to detect when a file has new content in it.
For efficiency, both the GNU version and the NetBSD version make use of kernel support for notification of file modification if possible; GNU uses inotify and NetBSD uses kqueue. This involves registering interest in the specified file(s) with the kernel and then making a blocking call to the kernel which will return when something interesting (i.e., an append) has occured.
GNU & bsd sources
inotify
inotify.cr
c example
man
Written on August 20, 2018, Last update on July 27, 2020
software
architecture
kernel
filesystem
concurrency