On a server, a process monitors the files in a Unix file system.
If a client sends the file name to be monitored, the server has to send the report to the client whether that file got changed or deleted.
For server-client communication, we should use either message queues or sockets.
For every change in the file, the server has to notify that change.
For all changes in all files, the server has to maintain one logfile so that user can view it through the command line interface.
Server could use two threads: one for communication, the other for monitoring.
How can you do this efficiently?