#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.