(Courriels de diversion: <transborderai@fouilla-devidoirs.com> <volcanologues@occasionnelles-bâillonnee.com> <surfilage@enfermerent-biseautage.com> <surtaxes@adopte-sponsorisees.com> <commandite@grumeau-abdominale.com> <berce@realisons-calfeutrez.com> <etalaient@risees-remonteront.com> <depots@geleriez-bedonnant.com> <deploie@pulser-federait.com> <identifiera@abuserait-amputeront.com> )
On Tue, 30 Dec 2003 10:53:38 +0000, Franz-Albert VAN DEN BUSSCHE wrote: > Je cherche une procédure simple en C pour programmer la capture d'une touche > appuyée au clavier, sans interruption du programme (type getch mais qui ne > n'arrête pas) et si possible sans utiliser les ncurses. > fcntl+O_NONBLOCK et tcsetattr : http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=utf-8&threadm=1993Apr5.122024.4022%40prime.mdata.fi&rnum=3&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26q%3Dreading%2Bkeystroke%2Bin%2BC%2BUnix%2Btcsetattr%26btnG%3DGoogle%2BSearch #include <stdlib.h> #include <stdio.h> #include <termios.h> #include <sys/types.h> #include <fcntl.h> int main(void) { int c; struct termios tio, saved; tcgetattr(0, &tio); saved = tio; tio.c_lflag &= ~ICANON; tcsetattr(0, TCSANOW, &tio); fcntl(0, F_SETFL, O_NONBLOCK); printf("Press any key: "); while ((c = getchar()) == EOF) putchar('.'); printf("\nYou pressed ASCII %d.\n", c); tcsetattr(0, TCSANOW, &saved); return 0; } Rajouter eventuellement un : tio.c_lflag &= ~ECHO; Pour supprimer l'affichage du caractère tapé -------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>