Ответы пользователя по тегу C
  • Как отключить буферизацию ввода и эхо-вывод (termios.h, stdin)?

    @Friedhelm Автор вопроса
    .Net Enterprise developer
    #include <termios.h>
    
    // хранилище дефолтного состояния
    static struct termios stored_termios;
    
    // Отключить эхо-вывод и буферизацию ввода
    void set_keypress (void)
    {
        tcgetattr(0, & stored_termios);
    
        struct termios new_termios = stored_termios;
            new_termios.c_lflag &= ~(ECHO | ICANON);
            new_termios.c_cc[VMIN] = 1;  
            new_termios.c_cc[VTIME] = 0; 
     
        tcsetattr(0, TCSANOW, & new_termios);
    }
     
    // Восстановление дефолтного состояния
    void reset_keypress (void) 
    {
        tcsetattr(0, TCSANOW, & stored_termios);
    }
    Ответ написан
    Комментировать