Termcap et entrées clavier
Bonjour a tous, pour mes cours, je dois coder un shell.
Pour gérer les entrées clavier, j'utilise la bibliothèque termcap. (consigne demandée dans le sujet).
Je pensais que ma fonction qui récupère les caractères entres était bonne, mais visiblement pas a 100%.
Voici ma petite fonction :lol:
Code:
1 2 3 4 5 6 7 8 9
| int check_key(int func(char key[BUFF_SIZE_READ + 1]))
{
char buff[BUFF_SIZE_READ + 1];
bzero(buff, sizeof(buff));
if (read(STDIN_FILENO, buff, BUFF_SIZE_READ) <= 0)
return (-1);
return (func(buff));
} |
Mon problème est simple. Cette fonction marche pour l'ensemble des touches du clavier sauf 'maj + k'
Ce que je ne comprends pas, c'est que ma fonction ne retourne même pas -1. Le bzero est bien éxécuté, le read aussi et ça s'arrète 8O PK?? lol!
Avez-vous une idée de pourquoi ça fait ça?
PS: BUFF_SIZE_READ = 5 8-)
Merci :D Bonne journee ;)
EDIT:
j'ai changé les réglages de mon terminal et ça fonction
Voici mes réglages :D
Code:
term.c_lflag &= ~(ICANON | ECHO | ISIG);
Sans ISIG ça ne fonctionne pas :aie: