Как отключить буферизацию строки ввода в xterm из программы?

То есть, как заставить нажатия клавиш отправляться прямо в мою программу, не дожидаясь, пока пользователь нажмет Enter. По сути, я пытаюсь получить что-то вроде вызова curses cbreak(). (Но я не могу использовать проклятия из-за пары ошибок/неправильных функций, которые я не смог обойти.) Это похоже на то, что должно быть просто тривиальной escape-последовательностью, но я не смог ничего найти.


person David X    schedule 22.12.2010    source источник


Ответы (2)


Поиск termios и функция tcsetattr.

person R.. GitHub STOP HELPING ICE    schedule 22.12.2010
comment
В частности, в каноническом режиме есть буферизация строк и редактирование. OP может искать это и / или другие флаги, которые нужно отключить между приготовленным и сырым режимом. - person ephemient; 22.12.2010
comment
‹headdesk› Спасибо (До сих пор не могу понять, почему это не побег.) - person David X; 22.12.2010
comment
Буферизация не происходит в терминале. Это происходит в драйвере tty ядра. - person R.. GitHub STOP HELPING ICE; 22.12.2010
comment
... хреновы буферы потоков. - person David X; 22.12.2010

Разве это не называется "сырой режим"? Если это так, это может вам помочь.

person Noufal Ibrahim    schedule 22.12.2010