Problema con kbhit () [y getch ()] para Linux

while(ch != 'q') 
{
  printf("looping\n");
  sleep(1);
  if(kbhit()) 
   {
    ch = readch();
    printf("you hit %c\n",ch);
   }
}

Este código me da una funcionalidad de bloqueo getch (). Estoy tratando de usar este código para capturar las teclas de flecha hacia abajo.

Adicional: Intentar capturar códigos clave de la flecha hacia arriba me da 3 caracteres 27, 91 y 65. Usando if / else estoy intentando la coincidencia de patrones pero solo obtengo 2 caracteres. La siguiente se captura cuando se presiona la siguiente tecla.

Quiero capturar palabras completas usando getchar () mientras busco ciertas teclas todo el tiempo (esc, del, etc.).

Respuestas a la pregunta(2)

Su respuesta a la pregunta