Commit 4585fc05455cfbafb24e2ad27be745b7a520cab7
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. |