je recherche comment faire en langage C sous debian
>une boucle while (ca pas de probleme:-)
>avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf
mais sans succes
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-) avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf mais sans succes [...]
Le fait est que le terminal n'envoie les caracteres tapes a l'application qui lit le terminal que quand on tape entree, dans le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U> sur ce /buffer/ que maintient le terminal avant que le buffer, la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement pour l'application (mais ca veut dire que c'est a l'application de gerer les <Backspace>...), alors il faut mettre le terminal dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce changement de mode que si l'entree standard est un terminal. Ne pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
info -f libc -n 'Terminal Modes'
(sur un systeme GNU).
-- Stéphane
2006-02-20, 12:03(+01), philippe:
pardonnez ma question candide
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-)
avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf
mais sans succes
[...]
Le fait est que le terminal n'envoie les caracteres tapes a
l'application qui lit le terminal que quand on tape entree, dans
le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U>
sur ce /buffer/ que maintient le terminal avant que le buffer,
la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement
pour l'application (mais ca veut dire que c'est a l'application
de gerer les <Backspace>...), alors il faut mettre le terminal
dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce
changement de mode que si l'entree standard est un terminal. Ne
pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche
d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-) avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf mais sans succes [...]
Le fait est que le terminal n'envoie les caracteres tapes a l'application qui lit le terminal que quand on tape entree, dans le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U> sur ce /buffer/ que maintient le terminal avant que le buffer, la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement pour l'application (mais ca veut dire que c'est a l'application de gerer les <Backspace>...), alors il faut mettre le terminal dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce changement de mode que si l'entree standard est un terminal. Ne pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
info -f libc -n 'Terminal Modes'
(sur un systeme GNU).
-- Stéphane
philippe
Stephane Chazelas wrote:
2006-02-20, 12:03(+01), philippe:
pardonnez ma question candide
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-) avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf mais sans succes
[...]
Le fait est que le terminal n'envoie les caracteres tapes a l'application qui lit le terminal que quand on tape entree, dans le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U> sur ce /buffer/ que maintient le terminal avant que le buffer, la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement pour l'application (mais ca veut dire que c'est a l'application de gerer les <Backspace>...), alors il faut mettre le terminal dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce changement de mode que si l'entree standard est un terminal. Ne pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
info -f libc -n 'Terminal Modes'
(sur un systeme GNU).
merci pour vos reponses
c'est pourtant vrai qi ya ncurses
je me penche de ce cote
philippe
Stephane Chazelas wrote:
2006-02-20, 12:03(+01), philippe:
pardonnez ma question candide
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-)
avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf
mais sans succes
[...]
Le fait est que le terminal n'envoie les caracteres tapes a
l'application qui lit le terminal que quand on tape entree, dans
le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U>
sur ce /buffer/ que maintient le terminal avant que le buffer,
la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement
pour l'application (mais ca veut dire que c'est a l'application
de gerer les <Backspace>...), alors il faut mettre le terminal
dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce
changement de mode que si l'entree standard est un terminal. Ne
pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche
d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
je recherche comment faire en langage C sous debian
une boucle while (ca pas de probleme:-) avec une saisie au clavier a la volee sans attendre de validation
j'ai bien ecrit des modules avec getchar(), scanf mais sans succes
[...]
Le fait est que le terminal n'envoie les caracteres tapes a l'application qui lit le terminal que quand on tape entree, dans le mode par defaut. On peut alors utiliser <Backspace>, <Ctrl-U> sur ce /buffer/ que maintient le terminal avant que le buffer, la ligne soit envoyee d'un coup a l'application.
Si on veut que tout caractere tapé soit disponible immediatement pour l'application (mais ca veut dire que c'est a l'application de gerer les <Backspace>...), alors il faut mettre le terminal dans le mode qui va bien.
En C, c'est tcsetattr(), utiliser isatty() pour ne faire ce changement de mode que si l'entree standard est un terminal. Ne pas oublier de restaurer le mode precedent en sortant.
Des bibliotheques comme ncurses te donne une couche d'abstraction. Ca pourra t'interesser.
Voir man termios, tcsetattr, isatty, stty et surtout:
info -f libc -n 'Terminal Modes'
(sur un systeme GNU).
merci pour vos reponses
c'est pourtant vrai qi ya ncurses
je me penche de ce cote
philippe
Thomas Baruchel
avec une saisie au clavier a la volee sans attendre de validation
Tu trouveras des informations assez explicites dans le manuel de la glibc. Je te conseille de taper sur Google : "c library" "low level terminal interface" puis de lire l'ensemble, en te concentrant sur la section intitulée : "Two Styles of Input: Canonical or Not"
Cordialement,
-- Thomas Baruchel
avec une saisie au clavier a la volee sans attendre de validation
Tu trouveras des informations assez explicites dans le manuel de la glibc.
Je te conseille de taper sur Google :
"c library" "low level terminal interface"
puis de lire l'ensemble, en te concentrant sur la section intitulée :
"Two Styles of Input: Canonical or Not"
avec une saisie au clavier a la volee sans attendre de validation
Tu trouveras des informations assez explicites dans le manuel de la glibc. Je te conseille de taper sur Google : "c library" "low level terminal interface" puis de lire l'ensemble, en te concentrant sur la section intitulée : "Two Styles of Input: Canonical or Not"
Cordialement,
-- Thomas Baruchel
Thomas Baruchel
Tu trouveras des informations assez explicites dans le manuel de la glibc.
Et j'ajoute ceci à ma réponse précédente : quand on commence à se préoccuper de ce genre de choses, il n'est pas mauvais de s'intéresser à des bibliothèques plus spécifiquement dédiées à la manipulation du terminal, comme ncurses, qui permet de faire proprement ce genre de choses. Si ton seul problème concerne la saisie de caractères, tu peux sans doute t'en tenir à la glibc comme mentionné dans ma réponse précédente, si tu t'occupes aussi d'avoir un affichage plus ou moins sophistiqué, etc. Je te conseille vraiment d'utiliser cette bibliothèque généralement installée sur tout bon système.
Cordialement,
-- Thomas Baruchel
Tu trouveras des informations assez explicites dans le manuel de la glibc.
Et j'ajoute ceci à ma réponse précédente : quand on commence à se
préoccuper de ce genre de choses, il n'est pas mauvais de s'intéresser
à des bibliothèques plus spécifiquement dédiées à la manipulation du
terminal, comme ncurses, qui permet de faire proprement ce genre de choses.
Si ton seul problème concerne la saisie de caractères, tu peux sans
doute t'en tenir à la glibc comme mentionné dans ma réponse précédente,
si tu t'occupes aussi d'avoir un affichage plus ou moins sophistiqué,
etc. Je te conseille vraiment d'utiliser cette bibliothèque généralement
installée sur tout bon système.
Tu trouveras des informations assez explicites dans le manuel de la glibc.
Et j'ajoute ceci à ma réponse précédente : quand on commence à se préoccuper de ce genre de choses, il n'est pas mauvais de s'intéresser à des bibliothèques plus spécifiquement dédiées à la manipulation du terminal, comme ncurses, qui permet de faire proprement ce genre de choses. Si ton seul problème concerne la saisie de caractères, tu peux sans doute t'en tenir à la glibc comme mentionné dans ma réponse précédente, si tu t'occupes aussi d'avoir un affichage plus ou moins sophistiqué, etc. Je te conseille vraiment d'utiliser cette bibliothèque généralement installée sur tout bon système.
Quelqu'un sait si un opérateur mobile en France fait des offres internet illimité sur le mobile ? je veux juste que mon téléphone aient une IP. compose le 127.0.0.1. Si ça sonne, c'est bon...
--{ professeur M. expert téléconn*ri*s }--
On 2006-02-20, Thomas Baruchel <baruchel@127.0.0.1> wrote:
etc. Je te conseille vraiment d'utiliser cette bibliothèque généralement
installée sur tout bon système.
Quelqu'un sait si un opérateur mobile en France fait des offres internet
illimité sur le mobile ? je veux juste que mon téléphone aient une IP.
compose le 127.0.0.1. Si ça sonne, c'est bon...
Quelqu'un sait si un opérateur mobile en France fait des offres internet illimité sur le mobile ? je veux juste que mon téléphone aient une IP. compose le 127.0.0.1. Si ça sonne, c'est bon...