URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8943
[ Назад ]

Исходное сообщение
"syscons и управляющие символы"

Отправлено reegool , 01-Дек-10 06:29 
Здравствуйте.
Я только начинаю осваивать "С".
Написал простенькую программку - некий аналог шелла. Суть работы проста: Считывать код нажатой клавиши, обрабатывать его и выводить на экран. С последним возникла проблема при попытке вывести какой-либо управляющий символ. Изложу подробнее:
Для печати символа использую printf(). Стирание последнего символа в строке делаю так:
printf("%s","\b") или printf("%c",127)и еще несколькими похожими способами.
При этом, через SSH или telnet все работает как надо. Символы печатаются и удаляются.
Но при подключении через ttyv вместо удаления символа появляются куски псевдографики. Возникает такое ощущение, что ttyv не понимает эти управляющие символы. Однако, тот же /bin/sh прекрасно работает. Вопрос такой:
Если печать управляющих символов - это не правильно, то как тогда правильно?
Если нужно лезть напрямую в видеобуфер, то где взять примеры того, как это правильно делать?

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"syscons и управляющие символы"
Отправлено ImPressed , 01-Дек-10 08:47 
>[оверквотинг удален]
> printf("%s","\b") или printf("%c",127)и еще несколькими похожими способами.
> При этом, через SSH или telnet все работает как надо. Символы печатаются
> и удаляются.
> Но при подключении через ttyv вместо удаления символа появляются куски псевдографики. Возникает
> такое ощущение, что ttyv не понимает эти управляющие символы. Однако, тот
> же /bin/sh прекрасно работает. Вопрос такой:
> Если печать управляющих символов - это не правильно, то как тогда правильно?
> Если нужно лезть напрямую в видеобуфер, то где взять примеры того, как
> это правильно делать?
> Заранее спасибо.

Не изобретайте велосипеды, используйте уже готовые решения -  nCurses или SLANG.
Скачайте исходники того-же MC и посмотрите как это сделано там


"syscons и управляющие символы"
Отправлено reegool , 02-Дек-10 03:05 
> Не изобретайте велосипеды, используйте уже готовые решения -  nCurses или SLANG.
> Скачайте исходники того-же MC и посмотрите как это сделано там

Спасибо за подсказку. ncurses действительно решила проблему.