Interrupts can be caught from userspace using the system call poll () and select () on file value. Example of look here [1]