在 Golang 中发现棘手的错误。修改 STDOUT 使得无法从 STDIN 读取:
package main
import "os"
func main() {
bts := make([]byte, 10)
// Side-affects
os.Create(os.Stdout.Name()) // comment to correct Read from STDIN
n, err := os.Stdin.Read(bts)
if err != nil {
println("err: " + err.Error()) // err: read /dev/stdin: resource temporarily unavailable
return
}
println(n)
}
//结果
错误:读取/dev/stdin:资源暂时不可用
//预期
(没有错误)
运行得很好...我使用的是 Ubuntu 24.04 linux,go 版本为 go1.23.1
当我执行你的代码时,它只是正确地坐在那里听标准输入......当我输入时在同一个终端中
万圣节快乐
它通过输出来响应
10
然后在同一个终端中显示
温
未找到命令“ween”,您的意思是:
所以从以上来看一切都很好