/* LEE TECLAS DE FLECHAS Y NOS DA SU CODIGO ASCII
SOLO FUNCIONA PARA LAS TECLAS DE FLECHAS
DEBIDO A LOS TRES read
FLECHA ARRIBA ===> 65
FLECHA ABAJO ===> 66
FLECHA DERECHA ===> 67
FLECHA IZQUIERDA ===> 68
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <termio.h>
#include <sys/ioctl.h>
#define STDINFD 0
#undef getc
char inkey(void);
int main() {
char c;
printf("Presione una tecla: ");
c=inkey();
printf("Codigo ASCII de la tecla presionada: [%d] Caracter: [%c]\n",c,c);
return 0;
}
char inkey(void) {
char c;
struct termio param_ant, params;
ioctl(STDINFD,TCGETA,¶m_ant);
params = param_ant;
params.c_lflag &= ~(ICANON|ECHO);
params.c_cc[4] = 1;
ioctl(STDINFD,TCSETA,¶ms);
fflush(stdin); fflush(stderr); fflush(stdout);
read(STDINFD,&c,1);
read(STDINFD,&c,1);
read(STDINFD,&c,1);
ioctl(STDINFD,TCSETA,¶m_ant);
return c;
}