Los que hayan programado en MS-DOS suelen buscar el equivalente en Linux de la función kdhit
, que detecta si se ha presionado una tecla sin llegar a leerla. Desafortunadamente, no encontraremos ningún equivalente directo porque no existe. Sin embargo, al cruzar programas desde MS-DOS, resulta aconsejable emular kbhit
, lo cual se puede conseguir usando el modo de entrada no canónico.
CREANDO NUESTRO kbhit
- Vamos a comenzar con las cabeceras estándar, y después declare un par de estructuras para las opciones de la terminal.
peek_character
se usa para comprobar si se ha presionado una tecla. Posteriormente, haga un prototipo de las funciones que usaremos más tarde. - La función principal llama a
init_keyboard
para configurar la terminal, después hace un bucle una vez por segundo, llamando akbhit
cada una de esas veces. Si la tecla presionada es q,close_keyboard
envía el comportamiento normal y el programa abandona. init_keyboard
yclose_keyboard
configura la terminal al principio y al final del programa.- Ahora la función que comprueba la tecla presionada:
- La siguiente función,
readch
, lee el carácter presionado, que después restablecepeek_character
a-1
para el siguiente bucle.
Si ejecutamos el programa kbhit.c
después de compilarlo obtendremos:
Tenga en cuenta que tiene que leer el carácter que se ha transmitido pero que hay que guardarlo localmente, listo para volverlo a enviar cuando sea necesario.
CONSOLAS VIRTUALES
Linux dispone de una consola virtual esta prestación dispone de varios dispositivos de terminal, y todos comparten la pantalla, el teclado y el ratón del ordenador. Normalmente, una instalación Linux estará configurada para 8 o 12 de dichas consolas virtuales. Las consolas virtuales están disponibles a través de los dispositivos de caracteres /dev/ttyN
, siendo N
un número a partir del 1
.
Si usa un registro de textual para su sistema Linux, se le mostrará un incitador de registro una vez que se inicie y ejecute Linux. Después se registrará usando un nombre de usuario y una contraseña. El dispositivo que está usando en este momento es la primera consola virtual, el dispositivo de terminal /dev/tty1
.
Mediante who
y ps
, puede ver quién se registra y la shell junto con los programas que se estan ejecutando en la consola virtual:
Millones de gracias, es justo lo que necesitaba, deberías de cobrar miles por este precioso algoritmo me salvaste la vida
Me gustaMe gusta
Gracias a ti, me encanta compartir lo que voy aprendiendo; si cobrara no tendría gracia.
Me gustaMe gusta
Porque no la cuestion no es cobrar o la cuestion es simplemente ser libre.
Me gustaMe gusta
Las fuentes te las paso gracias por todo..
Me gustaMe gusta
Bueno se trata de compartir.
Me gustaMe gusta
Me gusto mucho tu algoritmo dejame probarlo para hacer mejores programas. Gracias.
Me gustaMe gusta
Las fuentes gracias.
https://github.com/codigopublico/Git/tree/master/leerteclado
Me gustaMe gusta