I think this is a job for SIGIO: use SIGIO to notify the process
something just happened and have the process read from a character
device to find out just exactly what the SIGIO was about.
That is, of course, assuming the process can't simply select() on a
suitable device until something happens.
-hpa