LINUX.ORG.RU

Избранные сообщения diosio

не работает 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);
}

 

diosio
()