[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]
Re: getch sur linux
- To:
- Subject: Re: getch sur linux
- From: "Gilles J. Seguin" <>
- Date: Thu, 12 Oct 2000 01:05:14 -0400 (EDT)
-
In-reply-to: <[email protected]>
marc wrote:
>
> Bonjour je veux lire au clavier dès qu'un touche est tapé comme
> le getch() fait dans windows (conio.h). Mais sous linux la librairie
> conio.h n'existe pas et je suis incapable de faire lire mon programme
> dès qu'un touche est tapé. Avec getc, getchar, il lit uniquement
> après enter a été tapé.
>
> Ca ne me tente pas de commencer à gérer les événements X merde,
> c'est pourtant simple ce que je veux faire.....
Surveille ton langage le jeune,
Bienvenue chez les grands,
J'aurais aime savoir si la requete est pour une console, un terminal X,
une fenetre d'un environnement graphique.
Comment ce clavier et cette ecran est relie a l'ordinateur.
Est-ce qu'ils sont les seuls sur cet ordinateur.
Qu'elle est le device requis /dev/tty?0, /dev/pty?0
Les lectures a faire:
qu'est-ce qu'un terminal POSIX,
qu'est-ce qu'un pseudo terminal.
Lire les documents a propos de la console linux. Les petits
details comme comment changer la couleur, retour de chariot,
comment deplacer le curseur a l'ecran, changer le jeux de
caracteres.
Petit program ou les evements du clavier son deja gerer
par une librarie ainsi que les signaux SIGINT(^C),SIGTSTP(^Z)
Un programme un peu plus professionelle devrait s'occupe
de ses petites choses, apres s'etre documenter.
A un niveau plus bas, voir termios.h
gcc -Wall -g slecho.c /usr/lib/libslang.so -o slecho
/* slecho.c - demonstration simple de la manipualtion des entrees
** avec la librairie SLANG, voir Linux Application Development
** ISBN 0-201-30821-5
**/
#include <ctype.h>
#include <slang/slang.h>
#include <stdio.h>
int
main(void)
{
char ch = '\0';
/*
* Start SLANG tty handling, with:
* -1 default interrupt character (normally, Ctrl-C)
* 0 no flow control, allowing all characters (except
* interrupt) to pass through to the program
* 1 enable OPOST output processing of escape sequences
*/
SLang_init_tty(-1, 0, 1);
while (ch != 'q') {
ch = SLang_getkey();
printf("read: %c 0x%x\n", isprint(ch) ? ch : ' ', ch);
}
SLang_reset_tty();
return 0;
}
Pour les toolkits fonctionnant sur les serveur de X Windows system,
Les widgets fournissent des evenements que nous gerons a l'aide
de callbacks ou de table de translations.