Просто пытайтесь понять. Я пишу небольшую программу, которая будет читаться в событии нажатия клавиши с клавиатуры и запускать определенные события (с помощью оператора switch). Я делаю некоторые предположения и пытаюсь обрабатывать клавиатуру, как txt-файл для чтения.Использование системных вызовов в C для чтения событий клавиатуры
Я как бы растерялся относительно простейшего способа сделать это.
Что я хочу сделать, откройте файл (клавиатура event4) и используйте что-то вроде fgets, чтобы прочитать его в символе символом в бесконечном цикле while, а затем используйте оператор switch, чтобы выйти из цикла и выйти.
Где я застрял в том, что это системные вызовы, и я в основном не уверен, как с ними справиться.
Код ниже определенно не будет компилироваться, просто поместив его туда как грубую демонстрацию того, что я пытаюсь сделать.
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(void)
{
// errors on opening
int fd = open("/dev/input/event4", O_RDONLY);
if(fd < 0)
{
printf("error while opening/n");
return 1;
}
int keystroke = 0;
while (1)
{
keystroke = fgetsc(fd);
switch(keystroke)
{
case '1' :
break;
case '2' :
break;
case '3' :
break;
default:
printf("waiting for 1, 2, 3/n");
}
close(fd);
return 0;
}
Почему бы не использовать 'read (0, ...)' для чтения 'stdin'? – Ilmirus