File: keyboard.c

package info (click to toggle)
c-cpp-reference 2.0.2-8
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 8,016 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 119; java: 77; awk: 34; csh: 9
file content (51 lines) | stat: -rw-r--r-- 1,192 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/****************************************************************************
 *
 * Purpose: Reset the keyboard from line mode to character mode and
 *          suppress the echo when a key is entered. This allow the
 *          program to get a character without the user pressing ENTER.
 *
 *          This is for UNIX systems. DOS users have getch and getche.
 *          Unix programers can also use curses.
 *
 * Author:  M.J. Leslie.
 * Date:    30-Mar-97
 *
 ****************************************************************************/

void SetKeyboard  (void);
void ResetKeyboard(void);

main()
{
  char          Characters[1024];
  int           Inc=0;

  memset(Characters, 0, 1024);
  
  printf("Press a load of characters (q=exit)\n");

  SetKeyboard();

  for(Inc = 0; (Characters[Inc] = getchar()) != 'q'; Inc++);
  
  ResetKeyboard();

  printf("You Pressed %s\n", Characters);
}

/* Set the keyboard. */

void SetKeyboard(void)
{
  system("stty raw -echo");
}

/* Return the keyboard to its original state. If this is not called
 * before the program ends, the keyboard will remain in its reconfigured
 * state.
 */

void ResetKeyboard(void)
{
  system("stty -raw echo");
}