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,9 +10,14 @@ import (
10 "os" 10 "os"
11 "strings" 11 "strings"
12 12
  13 + "golang.org/x/sys/unix"
  14 +
13 "fullcycle/analog-kernel/parser" 15 "fullcycle/analog-kernel/parser"
14 ) 16 )
15 17
  18 +const ioctlReadTermios = unix.TCGETS
  19 +const ioctlWriteTermios = unix.TCSETS
  20 +
16 const defaultResult = ` 21 const defaultResult = `
17 { 22 {
18 "result": { 23 "result": {
@@ -73,6 +78,17 @@ func init() { @@ -73,6 +78,17 @@ func init() {
73 } 78 }
74 79
75 func main() { 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 var r parser.Request 92 var r parser.Request
77 93
78 // Read the sheet. 94 // Read the sheet.