2009-03-28 5 views
0

У меня есть программа, которая использует терминал в сыром режиме, и я хочу перемещать курсор. Где я могу найти escape-последовательность для этого и как я могу отправить его на терминал из моей программы?Как я могу отправить последовательности выхода терминала в режим сырого ввода?

Вот что я в настоящее время:

char code[4]; 
code[0] = 27; 
code[1] = 91; 
code[2] = '*'; 
code[3] = 'D'; 
write(1, code, 4); 

ответ

3

Если вы хотите контролировать полный экран, вы должны посмотреть библиотеку ncurses. Это простая библиотека для программ консольных полноэкранных, который содержит среди прочего

  • Полное позиционирование экрана текста
  • Использование полной клавиатуры, включая функциональные клавиши, вставка/удаление и т.д.
  • Использование атрибутов для окрашивания , выделение текста и т.д.
1

Вы хотите использовать termcap, чтобы получить эту информацию, так как она меняется в зависимости от того, какой терминал пользователь находится.

1

Я хотел бы предложить вам вглядеться в curses или ncurses библиотек, и планируют использовать одну или другую сторону, а не свернуть свой собственный. Вы должны использовать систему описания терминалов terminfo вместо старой системы termcap. Смотрите также книги О'Рейли «Termcap and Terminfo» и мой любимый титул (главным образом потому, что я, похоже, много времени проклинаю при программировании) «Progamming With Curses». (Тем не менее, эта книга древняя - 1986 год), и есть другие более свежие книги по одному и тому же вопросу, которые, вероятно, будут лучше выбора, но я все еще люблю название.)