Добрый день, пытаюсь написать реализацию терминала. Хочу чтобы при вызове от переводил терминал в неканонический режим и очищал экран. Но 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);
}








 






URL записи