Función de biblioteca C para verificar la pulsación de tecla desde el teclado (en linux)

¿Existe alguna función de biblioteca C para verificar la pulsación de tecla desde el teclado (estoy trabajando en una máquina Linux).

getchar() del archivo de encabezado stdio.h devuelve el siguiente carácter de stdin. Eso es probablemente lo que estás buscando.

El siguiente código generará el primer carácter de la secuencia estándar:

 #include  int main (int argc, char **argv){ char c = getchar(); printf("Char: %c", c); return 0; } 

También hay otras funciones disponibles para hacer esto sin bloquear, es decir, kbhit() y getch () en conio.h . Pero el archivo de cabecera conio.h no es estándar y probablemente no esté disponible en su plataforma si está usando Linux.

Así que tienes 2 opciones:

1.) Usando los ncurses de la biblioteca, puede usar la función timeout () para definir un timeout para la función getch() siguiente manera:

 initscr(); timeout(1000); char c = getch(); endwin(); printf("Char: %c\n", c); 

2.) Implementa kbhit() por ti mismo sin usar ncurses. Hay una gran expansión aquí para hacerlo. Tendría que medir el tiempo por sí mismo y en bucle hasta que se scope su tiempo de espera. Para medir el tiempo en C, hay muchos subprocesos aquí en stackoverflow, solo tienes que buscarlo. Entonces su código se vería así:

 while(pastTime() < YOUR_TIMING_CONSTRAINT){ if (kbhit()){ char c = fgetc(stdin); printf("Char: %c\n", c); } } 

Puede usar getchar() o getc(stdin) , estas son funciones estándar en C. Hacen eco del carácter al terminal que se presionó.

o incluso getch() . La ventaja es que no hace eco de los caracteres presionados en el terminal. Tenga en cuenta que getch() no forma parte del estándar C. Puede escribir su propia función para getch() o usar curses.h