Как писать текст прямо в буфер терминала
Решил попробовать - как программы (текстовые редакторы) прокручивают текст. Как вы знаете, такие программы при перемещении курсора "вверх/вниз" и вводе текста не распечатывают весь обновленный экран заново, а изменяют его содержимое. То есть они каким-то образом пишут прямо в буфер терминала. Решил узнать как это делается. В гугле все тихо - может не так вопрос задаю? "Как писать прямо в буфер терминала?", "Прокрутка текста". Не нашел. Решил покопаться в исходниках. У меня были HTEditor и Biew. У первого исходники очень запутанны, поэтому сказу принялся за второго. Нашел файлы keyboard.c и vio.c. Первый устанавливает режимы терминала перед началом работы, а второй вроде бы выводит текст на экран. Как он это делает я не нашел. Но понял одно - у программы есть 2-мерный массив, она изменяет его содержимое и вместе с этим изменяется содержимое экрана. Вспомнил что ee тоже так должен делать. Посмотрел его исходники. Есть new_curse.c, к-й выполняет некоторые функции curses'а (очень полезно кстати посмотреть - на предмет как работают нек. из них). А при компиляции есть выбор - либо new_curses.h, либо curses. Его смотрел я Си-файл, но опять ничего не нашел. Уж больно большой. Из всех вызовов - только ioctl, устанавливающий / получающий флаги терминала и fcntl, к-й тоже самое делает с открытым файлом. Подскажет кто-нибудь, как это сделать? Или правильный вопрос, нужные curses-функции или системные вызовы.