A signal is basically a message sent from one process to another, indicating a change of state.
Different versions of Unix use different names and/or numbers for some of the lesser used signals. See the signal(7) man-page. You can find the signals and numbers used in the POSIX standard, in /usr/include/bits/signum.h on a Linux system, or by invoking kill -l.
These hotkeys can be found by typing:
intr = ^C; quit = ^\; susp = ^Z
intr = [SIGINT] quit = [SIGQUIT] susp = [SIGSTOP]
Some people have a misconception that CTRL-S and CTRL-Q send a SIGSTOP and SIGCONT signal respectively.
This is not the case!
CTRL-S and CTRL-Q are used to control the flow of output to the terminal. CTRL-S tells the system not to send any more data to the screen until a CTRL-Q is pressed. You can use these to control fast scrolling output.
Here are a couple of pages that show how to code for signals:
http://users.actcom.co.il/choo/lupg/tutorials/signals/signals-programming.html
http://www.gnu.org/software/libc/manual/html_node/Signal-Handling.html
5 pages link to Signal: