Qualcuno di voi sa come capire quando viene premuto un tasto?
l'unica cosa che ho trovato è il comando getchar
che cmq non fa quello che mi interessa perchè non esegue i comandi fino a quando non do invio.
getchar della libreria stdio.h come hai detto attende la pressione di invio. Questo in parte dipende dalle impostazioni del terminale (cbreak=true).
Ci sono due modi per ottenere quello che vuoi tu: o utilizzando la libreria termios cambi le impostazioni del terminale oppure utilizzi le librerie ncurses (metodo consigliato!!

).
La libreria termios ti permette di cambiare gli attributi del terminale. Per la prima soluzione (abbastanza intricata):
http://www.lilik.it/~mirko/gapil/gapilsu163.htmlhttp://linux.about.com/library/cmd/blcmdl3_termios.htmQuesta libreria introduce una struct con gli attributi del terminale:
01: struct termios {
02: tcflag_t c_iflag; /* input modes */
03: tcflag_t c_oflag; /* output modes */
04: tcflag_t c_cflag; /* control modes */
05: tcflag_t c_lflag; /* local modes */
06: cc_t c_cc[NCCS]; /* control characters */
07: cc_t c_line; /* line discipline */
08: speed_t c_ispeed; /* input speed */
09: speed_t c_ospeed; /* output speed */
10: };
Nel tuo caso gli attributi da modificare sono quelli indicati come
input modesIo ti consiglio di utilizzare le ncurses:
Ncurses è la libreria che permette di
* Usare l'intero schermo come si preferisce.
* Creare e gestire finestre. Usare 8 colori diversi.
* Aggiungere il supporto per il mouse ai programmi.
* Usare i tasti funzione della tastiera.
* Funzionare su un grande numero di terminali diversi, anche attraverso la rete, fornendo un'interfaccia indipendente dal terminale.
Per una breve guida introduttiva:
http://www.itis.mn.it/linux/quarta/interfaccia/index.htmLe ncurses ti permettono di creare interfacce pseudografiche ai tuoi programmi con menu e finestre. Hai presente minicom, kismet, menuconfig del kernel, muse (eheheh modestamente)

Se ti serve una mano chiedi
