#### 24.2.4 Asynchronous I/O Signals

The signals listed in this section are used in conjunction with asynchronous I/O facilities. You have to take explicit action by calling `fcntl` to enable a particular file descriptor to generate these signals (see Interrupt Input). The default action for these signals is to ignore them.

— Macro: int SIGIO

> This signal is sent when a file descriptor is ready to perform input or output.

> On most operating systems, terminals and sockets are the only kinds of files that can generate `SIGIO`; other kinds, including ordinary files, never generate `SIGIO` even if you ask them to.

> On GNU systems `SIGIO` will always be generated properly if you successfully set asynchronous mode with `fcntl`.

— Macro: int SIGURG

> This signal is sent when “urgent” or out-of-band data arrives on a socket. See Out-of-Band Data.

— Macro: int SIGPOLL

> This is a System V signal name, more or less similar to `SIGIO`. It is defined only for compatibility.