[C] Terminare programma da tastiera
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
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

Risposte
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.

Puoi provare con getch(). Sono sicuro che su ambienti Windows funziona, non garantisco nulla altrove.
Spero di averti aiutato, in caso chiedi pure ulteriormente.
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?:(
Nessuno saprebbe come ovviare al problema?:(
Control + C e intercettare il relativo segnale? Non so se su Windows funzioni così semplicemente, prova a dare un'occhiata a questa discussione.
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].
"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
Guarda qui per un'introduziobe ai thread in C usando la libreria pthread (uno tra i tanti tutorial)
https://computing.llnl.gov/tutorials/pthreads/
https://computing.llnl.gov/tutorials/pthreads/