Доступ к клавиатуре Linux через указатели C

#c #linux #keyboard

#c #linux #клавиатура

Вопрос:

Я новичок в C, но не в программировании. Я хочу получить доступ к клавишам клавиатуры через указатели. Как я уже пробовал это с помощью far pointer и использую адрес 0x417 и 7-й бит при программировании в моей системе P2 на Windows box. Теперь я хочу начать работать в Linux и пытаюсь использовать ту же функцию, но с caps lock ничего не происходит. Любой может прислать мне хороший учебник по доступу к оборудованию и файловым атрибутам в Ubuntu Linux.

Я очень благодарен вам всем.

С уважением,

Комментарии:

1. Такого понятия, как дальний указатель, не существует — не в течение последних пятнадцати лет.

Ответ №1:

В Linux вы не получаете доступ к клавиатуре через указатели.

Если вы думаете о графическом приложении, оно использует X11 и лежащий в его основе протокол (который очень сложен для новичков). Если вы новичок, я настоятельно рекомендую использовать библиотеку графического инструментария, такую как Qt или GTK.

Если вы думаете о консольном приложении, я рекомендую использовать библиотеку, подобную ncurses или, возможно, readline.

Вы действительно могли бы прочитать необработанную клавиатуру (поскольку, например, сервер Xorg это делает), но это болезненно. Вам нужно будет узнать о tty-s, и детали являются болезненными. Вам также нужно будет узнать о клавиатуре raw Linux (я забыл подробности, но изучите сервер Xorg для получения дополнительной информации).

Вы действительно должны объяснить, что вы хотите сделать. Имейте в виду, что для полного понимания того, что такое tty или что такое raw-клавиатура, требуются месяцы работы. И вы должны быть знакомы с системными вызовами Linux, прежде чем даже начинать.

Вы должны воспользоваться тем преимуществом, что почти все программное обеспечение Linux является бесплатным; таким образом, вы можете изучить его исходный код.

Комментарии:

1. Точно, хотя это интересно само по себе, если вам действительно нужно какое-то конкретное приложение, вам, вероятно, не следует иметь дело с необработанным интерфейсом tty.

Ответ №2:

Самый простой способ прочитать Caps Lock в Ubuntu (или любом обычном дистрибутиве Linux), вероятно, с помощью библиотеки SDL, пример здесь.

В Ubuntu вы бы установили эту библиотеку в командной строке с помощью apt-get install libsdl-dev .

Комментарии:

1. SDL — это библиотека графического инструментария: в Linux она использует X11 (и OpenGL). И я не совсем уверен, что для новичка SDL проще в использовании, чем, например, Gtk или Qt.

2. Для меня SDL выглядит намного проще, чем Gtk и Qt.