не могу найти в стандартных либах аналог keypressd - чтобы операция не останавливалась до сброса флага "нажатия клавиши" типа getch - а просто брала из стэка сканкод, если что-то нажато.
Не так все просто: а какой сканкод ты хочешь получить, работая через
псевдоустройство, например?
Есть несколько способов. Главное, надо усвоить, что не существует
системно-независимого понятия "сканкода", как в ДОСе.
Возможно, поможет просто select() на 0 дескриптор (man 2 select) - но
не совсем то, поскольку ввод буферизуется терминалом. Можно перевести
терминал в RAW моду вызовом ioctl, но тогда уж проще анализировать
терминал прямо с помощью ioctl, вот пример:
http://www.linuxgazette.com/issue13/editors.html
В принципе, все это есть в стандартной библиотеке ncurses, которая к
тому же переносима. man ncurses, но по манам трудно разобраться.
Почитай howto, должна быть в любых линуксовых доках.