[C] Terminare programma da tastiera

Return89
Ciao a tutti,
esiste un modo, in C, per far si che un generico programma (eseguibile) termini la propria esecuzione alla pressione da tastiera di un generico tasto (Es.: premendo "S") ?
Ovviamente il programma sarebbe ciclico (ed infinito) ma non voglio controllare la condizione "pressione tasto S" alla fine del ciclo, bensì durante lo stesso :)


Grazie anticipatamente a chiunque voglia aiutarmi :D

Risposte
onlyReferee
Ciao Return89 :!:
Puoi provare con getch(). Sono sicuro che su ambienti Windows funziona, non garantisco nulla altrove.
Spero di averti aiutato, in caso chiedi pure ulteriormente.

Return89
No, ho specificato apposta che non voglio verificare la condizione in una parte specifica del programma bensì vorrei che in qualsiasi momento essa venga verificata.

Nessuno saprebbe come ovviare al problema?:(

claudio862
Control + C e intercettare il relativo segnale? Non so se su Windows funzioni così semplicemente, prova a dare un'occhiata a questa discussione.

sapo931
l'unico metodo che mi viene in mente è quello di creare un thread separato dal programma principale che controlla se viene premuto il tasto di chiusura, ma mi sembra come "uccidere una mosca con un bazooka" [cit].

Return89
"sapo93":
l'unico metodo che mi viene in mente è quello di creare un thread separato dal programma principale che controlla se viene premuto il tasto di chiusura, ma mi sembra come "uccidere una mosca con un bazooka" [cit].

E come dovrei farlo?


"claudio86":
Control + C e intercettare il relativo segnale? Non so se su Windows funzioni così semplicemente, prova a dare un'occhiata a questa discussione.

Si in effetti questa potrebbe essere una soluzione

sapo931
Guarda qui per un'introduziobe ai thread in C usando la libreria pthread (uno tra i tanti tutorial)

https://computing.llnl.gov/tutorials/pthreads/

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.