Wpis z mikrobloga

Mirki pomagam kuzynowi w napisaniu gierki "2048" w C i podesłał mi jeden gotowiec na którym można się wzorować i generalnie wszystko spoko ale znalazłem fragment kodu którego totalnie nie rozumiem:

#include
static struct termios backup;
static struct termios current;

void take_stdin(void)
{
tcgetattr(STDIN_FILENO, &backup);
current = backup;
current.c_lflag &= (~ICANON & ~ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &current);
}

void give_stdin(void)
{
tcsetattr(STDIN_FILENO, TCSANOW, &backup);
}

Co niby mają robić te metody? Dzieki za pomoc!

#programowanie #cpp
  • 6
  • Odpowiedz
@kobiaszu: To klasyczny snippet do ustawienia stdin na noncanonical mode + wylaczone echo. Funkcja givestdin przywraca defaultowe ustawienia terminala (prawie zawsze wywoluje sie przy wychodzeniu z aplikacji). To nie jest implementacja getch, a tym bardziej uposledzona ( ͡° ͜ʖ ͡°)
  • Odpowiedz