Полная версия этой страницы:
Очистка экрана из C
Есть консольное приложение. Принимает строки и в ответ печатает. С помощью перенаправления ввода-вывода работа идет через RS232 (tty устройства) и через телнет. Послылаю esc-последовательности в окошки по RS232 - экран очищается. Посылаю в окшко, работающее через телнет - очистка не работает. Советуют ncurses, curses.....но прога компилится для ARM9260 , а в кросс-компилере нету готовой библиотеки ncurses, curses. Скачал ncurses - но собрать библиотеку быстро не получилось - нету опыта. Может через tcsetattr( STDIN_FILENO, TCSANOW, &newt ); и тому подобное можно как-то решить проблему?
Поплясав с бубном собрал библиотеку для arm.
Тестовый пример(взял с doc в линуксе)
initscr();
//clear();
printw("and removes any definitions for the mini keypad. Type any of those:\n");
refresh();
// win = newwin(LINES - 3, COLS, 3, 0);
endwin(); // завершение работы с ncurses
Скомпилил, запустил - получил Error opening terminal: vt100. Хотя коннктился по RS232 прожкой, в настройках которой стоит vt100.
Ладно - этот же пример скомпилил для RedHat(x86).
Запускаю(из под терминала) - ошибок нет, предупреждений нет, ничего нет. Пример отработал - но на экран ничего не выскочило.
так под платформу x86 все заработало. Теперь для арм побороть "Error opening terminal: vt100". Эта ошибка вылетает если просто сделать:
initscr();
p.s.
попробовал по телнету - в окно выдается "Error opening terminal: vt102" - чувствую где-то в системе надо что-то прописать....подскажите где рыть...
Все заработало - просто тупо полазил по termcap и выбрал последовательность, которая чистит и RS-окна и телнетовские. Понимаю, что мера временная и не решает кардинально вопрос. Оставлю на потом.
Строка такая:
printf("\x1B[H\x1B[J");
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.