Tout cela m'a l'air bien flou. Si j'ai bien compris, il y a 2 problèmes :
- attente d'évènements venant de 2 sources différentes (tty et ttyS)
- pour tty, attente en mode "caractère" plutôt que "ligne"
Dans les 2 cas, inutile de s'intéresser aux IRQ : c'est le noyau qui gère ça. Les gérer soi-même signifierait... modifier le noyau. Ce serait ridicule parce que tout ça est possible en espace user, et il y a même moyen de faire quelque chose de portable (solaris, *bsd, ... mac os ???).
Pour le premier point, select ou poll sont des solutions (RTFM).
Pour le deuxième point, info libc, rechercher "non canonical input" (ou http://info2html.sourceforge.net/cgi-bin/info2html-demo/info(...) ). Pour ce qui est du cas spécial du "Ctrl-C", man signal : c'est SIGINT qu'il faut rattraper.
Evidemment, tout ca est accessible directement par la libc. Mais j'imagine qu'en utilisant des bibliotheques de plus haut niveau (glib, *curses, slang, etc.) il y a moyen de se simplifier la vie.
# Ceci constitue peut-être une réponse
Posté par David Decotigny . En réponse au message Cherche solution interruption clavier. Évalué à 4.
- attente d'évènements venant de 2 sources différentes (tty et ttyS)
- pour tty, attente en mode "caractère" plutôt que "ligne"
Dans les 2 cas, inutile de s'intéresser aux IRQ : c'est le noyau qui gère ça. Les gérer soi-même signifierait... modifier le noyau. Ce serait ridicule parce que tout ça est possible en espace user, et il y a même moyen de faire quelque chose de portable (solaris, *bsd, ... mac os ???).
Pour le premier point, select ou poll sont des solutions (RTFM).
Pour le deuxième point, info libc, rechercher "non canonical input" (ou http://info2html.sourceforge.net/cgi-bin/info2html-demo/info(...) ). Pour ce qui est du cas spécial du "Ctrl-C", man signal : c'est SIGINT qu'il faut rattraper.
Evidemment, tout ca est accessible directement par la libc. Mais j'imagine qu'en utilisant des bibliotheques de plus haut niveau (glib, *curses, slang, etc.) il y a moyen de se simplifier la vie.