Commit 4585fc05455cfbafb24e2ad27be745b7a520cab7

Authored by 김태훈
1 parent b4dc09fcaa
Exists in master

STDIN 에코 비활성화

Showing 1 changed file with 16 additions and 0 deletions   Show diff stats
go/src/fullcycle/analog-kernel/main.go
... ... @@ -10,9 +10,14 @@ import (
10 10 "os"
11 11 "strings"
12 12  
  13 + "golang.org/x/sys/unix"
  14 +
13 15 "fullcycle/analog-kernel/parser"
14 16 )
15 17  
  18 +const ioctlReadTermios = unix.TCGETS
  19 +const ioctlWriteTermios = unix.TCSETS
  20 +
16 21 const defaultResult = `
17 22 {
18 23 "result": {
... ... @@ -73,6 +78,17 @@ func init() {
73 78 }
74 79  
75 80 func main() {
  81 + // Disable echo for stdin.
  82 + termios, err := unix.IoctlGetTermios(0, ioctlReadTermios)
  83 + check(err)
  84 +
  85 + termios.Lflag &= ^(uint32(unix.ECHO | unix.ICANON))
  86 + termios.Cc[unix.VMIN] = 1
  87 + termios.Cc[unix.VTIME] = 0
  88 +
  89 + err = unix.IoctlSetTermios(0, ioctlWriteTermios, termios)
  90 + check(err)
  91 +
76 92 var r parser.Request
77 93  
78 94 // Read the sheet.
... ...