Dans l'exemple ci-dessous, le programme intercepte le signal SIGINT généré par la touche DEL.
[linewidth=1pt,fillstyle=solid,shadow=true](-0.5,0)(17.5,-6.5)
#include <signal.h> void spint(int sig) { printf("Recu signal d'interruption %d\n",sig); } void main() { signal(SIGINT,spint); pause(); exit(0); }
Dans l'exemple suivant, le processus crée un fils, lui envoie un signal et attend sa fin. Le fils met en place le traitement du signal et se met en attente. Le père fait un sleep pour garantir la mise en place du fils et du traitement du signal.
[linewidth=1pt,fillstyle=solid,shadow=true](-0.5,0)(17.5,-10)
#include <stdio.h> void spsig(int sig) { printf("Signal %d recu\n",sig); } void main() { int idfils, status; if (idfils=fork()) { /* pere */ sleep(5); kill(idfils,SIGUSR1); wait(&status); exit(0); } else { /* fils */ signal(SIGUSR1,spig); pause(); exit(1); } }