Puoi mandare in esecuzione un alarm(secondi) e gestire il segnale in modo opportuno!
Es
Codice:
{
signal(SIGALRM, sig_handler);//funzione del gestore del segnale
alarm(10);//dopo 10 secondi invio di un segnale SIGALRM
//altra roba.....
}
void sig_handler(){
kill(getpid(), SIGINT);
}
//e ovviamente puoi mettere un gestore per SIGINT