signal(SIGINT, handleCtrlC);
Dá para fazer.
Tens que apanhar o Signal e criar uma função de handle para o mesmo.
Por exemplo, para apanhares um CTRL + C (que é uma interrupção), fazes:
Em que handleCtrlC é a função que corre quando o sinal é apanhado (normalmente nestas situações é guardar o estado da máquina).Código:signal(SIGINT, handleCtrlC);
--EDIT--
Li agora o teu post direito ... e a minha resposta axo k não tem nada a ver
(Lendo de stdin)Se usares o scanf(); e estiveres a ler valores, por exemplo num ciclo, e pressionares CTRL-D, a função scanf() devolve -1.
A partir daí interpreta