【发布时间】:2022-07-10 10:03:49
【问题描述】:
我正在使用 Delve 进行调试,但遇到了处理标准输入/标准输出的最佳方式的问题。
第一个问题是我无法读取控制台。我有一个从控制台使用 onput 的函数:
func readConsole() string {
reader := bufio.NewReader(os.Stdin)
entry, err := reader.ReadString('\n')
if err != nil {
tlog.Fatal(fmt.Errorf("readConsole(): Error reading console input. %v", err))
}
entry = strings.Replace(entry, "\n", "", -1)
return entry
}
ReadString() 返回以下“错误文件描述符”错误:
F0208 21:03:56.574021 429026 configurator.go:81] readConsole(): Error reading console input. read /dev/stdin: bad file descriptor
第二个问题是 fmt.Printf() 在我刚刚运行应用程序时有效,但如果我单步执行源代码 fmt.Printf() 不会显示任何内容。
我知道 dlv 正在通过控制台竞争输入和输出,但不确定如何管理竞争需求。
【问题讨论】: