не работает tputs
Форум — Development
Добрый день, пытаюсь написать реализацию терминала. Хочу чтобы при вызове от переводил терминал в неканонический режим и очищал экран. Но tputs почему то не срабатывает, помогите пожалуйста.
struct termios saved_attributes; /* переменная для сохранения исходных атрибутов терминала */
int ft_c(int c)
{
write(2, &c, 1);
return (1);
}
void reset_input_mode(void)
{
tcsetattr(0, TCSANOW, &saved_attributes);
}
void set_input_mode(void)
{
struct termios tattr;
if (!isatty(0)) /* проверяем, что вводим с терминала */
{
fprintf(stderr, "Not a terminal.\n");
exit (1);
}
tcgetattr(0, &saved_attributes); /* считываем текущий режим работы терминала */
memcpy(&tattr, &saved_attributes, sizeof(tattr));
tattr.c_lflag &= ~(ICANON | ECHO | ECHOE); /* включаем неканонический режим без эха */
tattr.c_cc[VMIN] = 1; /* считываем минимум по одному символу */
tattr.c_cc[VTIME] = 0; /* без ограничения времени ожидания */
tcsetattr(0, 0, &tattr); /* устанавливаем новый режим работы терминала */
tputs(tgetstr("cl", NULL), 1, ft_c);
}