Перейти в группу новостей: 
 
Тема Linux, СИ, gcc и клавиши F2-F10
Написал killer1804 <denis@zlatunix.ru>
Дата 3 октября 2019 в 10:00:29
Группа новостей kraft.programming

Была такая задача:

Поймать событие нажатия клавишы, понять, что это за клавиша и в
зависимости от результата произвести действие.
Если точнее - на сервер нужно отправить то, что я нажимаю на клавиатуре,
Если клаившу K - то символ K, если нажат backspace, то строку "\b"

это я реализовал с помощью такого кода:




#include
#include
#include


int main()
{

struct termios term;
char buf;
tcflag_t old_lflag;

tcgetattr (0, &term);
old_lflag = term.c_lflag;
term.c_lflag &= ~(ECHO | ICANON);
tcsetattr (0, TCSANOW, &term);
while (read (0, &buf, 1))
{
if (buf == 4)
break;
printf ("%i\n", buf);
}
term.c_lflag = old_lflag;
tcsetattr (0, TCSANOW, &term);
return 0;
}


и вот беда - если буквы, и даже стрелочки (влево-вправо) выдают
одинаковый результат на разных машинах, то клавиши F2-F10 разный
результат на разных машинах.

Вот результат из win7_x32 подключаюсь через putty:

[user0@video_srv si]$ ./1symb_all2
27
91
49
50
126

другой компьютер линукс с иксами выдает:
27
79
81

та же машина но из консоли (без иксов) выдает:
27
91
91
66


Как бы так сделать, чтобы независимо от того, на каком компьютере
запущена программа, в иксах или консоли, через putty или нет - всегда
можно было ей сказать, что это F2 нажата ?

Спасибо.
Все сообщения в этой теме
 
#  Linux, СИ, gcc и клавиши F2-F10 killer1804 3 октября 2019 в 10:00:29
#  Re: Linux, СИ, gcc и клавиши F2-F10 Eldar 3 октября 2019 в 10:19:23
#  Re: Linux, СИ, gcc и клавиши F2-F10 killer1804 3 октября 2019 в 10:27:03
#  Re: Linux, СИ, gcc и клавиши F2-F10 killer1804 3 октября 2019 в 10:39:32
#  Re: Linux, СИ, gcc и клавиши F2-F10 Eldar 3 октября 2019 в 10:46:49
#  Re: Linux, СИ, gcc и клавиши F2-F10 killer1804 3 октября 2019 в 10:54:04