getch()

harja 31.12.03 12:18

getch linuxille

 Tekstiversio  Arvo: 8 (10 ääntä)  Äänestä: +  -
/* Demonstroi terminaaliattributtien uudelleenasettamista */

#include <stdio.h>
#include <sys/termios.h>

int getch(void)
{
  struct termios settings, old_settings;
  int c=0;

  tcgetattr(0, &settings);
  /* Wanhat asetukset talteen */
  old_settings=settings;

  /* Kanooninen tila ja kaiutus pois */
  settings.c_lflag&=~(ICANON|ECHO);

  /* VTIME = timeout, VMIN=minimimäärä luettaville kirjaimille */
  settings.c_cc[VTIME]=0;
  settings.c_cc[VMIN]=1;

  /* Asetetaan uudet asetukset */
  tcsetattr(0, TCSANOW, &settings);

  /* Luetaan merkki uusilla asetuksilla */
  c=getchar();

  /* Asetetaan vanhat asetukset takaisin */
  tcsetattr(0, TCSANOW, &old_settings);

  return c;
}