Dica: getch()

Vi uma excelente dica de um forista no Ubuntu Forum sobre a implementação da antiga função getch(), disponível em conio.h, no antigo DOS e disponível também no ncurses:

#include <stdio.h>
#include <termios.h>
#include <unistd.h>

int getch()
{
  struct termios newtios, oldtios;
  int ch;

  tcgetattr(STDIN_FILENO, &oldtios);

  /* Reusa o modo atual. */
  newtios = oldtios;

  /* Desabilita o modo canônico e o echo */
  newtios.c_lflag &= ~(ICANON | ECHO);
  tcsetattr(STDIN_FILENO, TCSANOW, &newtios);

  ch = getchar();

  /* Retorna o terminal ao normal. */
  tcsetattr(STDIN_FILENO, TCSANOW, &oldtios);

  return ch;
}

Assim vocẽ não precisa usar o ncurses!

Thanks ao forista edjin, pela dica!

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s