Posiljanje sporocil s signali je nacin obdelave asinhronih dogodkov. Ti signali so misljeni kot prekinitve programa, ki dobi sporocilo in se mora odzvati na nacin, ki je predpisan. Sporocila programu lahko pridejo od uporabnika, ki npr. pritisne doloceno tipko ali da ukaz za generiranje signala; lahko pa je to tudi sporocilo od drugega programa, ki komunicira s prvim. Signalov je vec vrst, so poimenovani in imajo predpisan nacin, kako se program odziva na dolocen signal. Privzeto odzivanje programa na signal lahko spremenimo s funkcijo signal(). Uporabnik lahko nastavi tri nacine odzivanja na signal:
signal(SIGQUIT, SIG_IGN);ignorira ukaze za koncanje (quit)
signal(SIGQUIT, SIG_DFL);pa nastavimo predvideno (default) odzivanje na signal
Posiljanje signalov med procesi je izvedeno s funkcijama kill() in raise(). Funkcija raise lahko posilja signale le istemu procesu, medtem ko kill zmore posiljati tudi drugim procesom. Cakanje na signal je izvedeno s pause(). Mozna je tudi nastavitev za avtomatsko generiranje signala s funkcijo alarm(unsigned int seconds), kar uporabno za kontrolo delovanja programa s t.i. watch-dog timer-jem, kjer nastavimo najvecji cas, ki ga lahko kaksna operacija opravlja. Tipicna opravila so to razna branja iz enot, kjer nastavimo t.i. timeout, po katerem prekinemo nadaljnje branje zaradi nedelovanja enote.
Na novejsih sistemih obstajajo tudi funcije za nadzor skupine signalov, kjer lahko nastavimo cakanje, zacasno ustavitev signalov in verizenje akcij (hooks) za signale.