To synchronously determine the completion of an asynchronous I/O event
rather than depend on a SIGIO interrupt, use poll(2). You can also poll to determine
the origin of a SIGIO interrupt.
Use of poll(2)
for very large numbers of files is slow. This problem is resolved by poll(7D).