LINUX.ORG.RU

keypressed на C++


0

0

не могу найти в стандартных либах аналог keypressd - чтобы операция не останавливалась до сброса флага "нажатия клавиши" типа getch - а просто брала из стэка сканкод, если что-то нажато.

anonymous

Не так все просто: а какой сканкод ты хочешь получить, работая через
псевдоустройство, например?

Есть несколько способов. Главное, надо усвоить, что не существует
системно-независимого понятия "сканкода", как в ДОСе.

Возможно, поможет просто select() на 0 дескриптор (man 2 select) - но
не совсем то, поскольку ввод буферизуется терминалом. Можно перевести
терминал в RAW моду вызовом ioctl, но тогда уж проще анализировать
терминал прямо с помощью ioctl, вот пример:
http://www.linuxgazette.com/issue13/editors.html

В принципе, все это есть в стандартной библиотеке ncurses, которая к
тому же переносима. man ncurses, но по манам трудно разобраться.
Почитай howto, должна быть в любых линуксовых доках.

То, что тебе надо, лежит, например, тут:
http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/init.html

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.