linux — нажатие клавиши C ++ для работы с терминалом на экране

Мне нужно прочитать нажатие клавиш на терминале.

#include <stdio.h>
#include <unistd.h>
#include <termios.h>

int main()
{
struct termios old_tio, new_tio;
unsigned char c;

/* get the terminal settings for stdin */
tcgetattr(STDIN_FILENO,&old_tio);

/* we want to keep the old setting to restore them a the end */
new_tio=old_tio;

/* disable canonical mode (buffered i/o) and local echo */
new_tio.c_lflag &=(~ICANON & ~ECHO);

/* set the new settings immediately */
tcsetattr(STDIN_FILENO,TCSANOW,&new_tio);

do {
c=getchar();
printf("%d ",c);
} while(c!='q');

/* restore the former settings */
tcsetattr(STDIN_FILENO,TCSANOW,&old_tio);

return 0;
}

Сделай с командой gcc test.cpp -o test

Это работает правильно, но если я запускаю этот код на экране: screen -dmS m ./test Я вижу в терминале после подключения экрана:

255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255

И моя загрузка процессора на 100%.
Как я могу решить эту проблему?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]