Возникла потребность преписать досовскую программу под linux. Но есть проблема с опросом клавиатуры. В досе это делалось через bioskey. Есть ли что-нибудь подобное под линукс, что возвращало бы скан-код нажатой клавиши ?
Если нужен именно сканкод, то:
1) Прога должна быть запущена на консоли (не из-под mc или xterm).
2) В начале работы проги нужно перевести клаву в raw-режим: ioctl(STDIN_FILENO, KDSKBMOD, K_RAW).
3) Перед выходом восстановить режим работы клавы.
4) Если прога вылетит по segfault, ты даже перезагрузиться нормально не сможешь (только если через сеть).
Подробности: man console_ioctl.
В 'c' будет сканкод. Т.е. все остальное - как обычно. Читаешь stdin. Вышеуказанный ioctl используется только для настройки stdin'а. Если тебе захочется от сканкодов перейти к оттранслированным кодам, сделаешь
ioctl(STDIN_FILENO, KDSKBMOD, K_XLATE);
И опять-таки читать их будешь с stdin.
Но вообще-то тебе надо сделать не только ioctl. Забыл я, нужно еще настроить терминал на неканонический режим. Подробности:
info libc
А еще тебе, наверно, будет интересно вот это почитать:
man showkey