Golang疑难Bug:修改STDOUT导致无法从STDIN读取
Golang疑难Bug:修改STDOUT导致STDIN无法读取
发现Golang中存在一个疑难Bug:当执行os.Create(os.Stdout.Name())修改STDOUT后,会导致无法从STDIN读取内容,报错信息为read /dev/stdin: resource temporarily unavailable。
复现代码
package main import "os" func main() { bts := make([]byte, 10) // 引发问题的代码 os.Create(os.Stdout.Name()) // 注释掉这行后,STDIN读取恢复正常 n, err := os.Stdin.Read(bts) if err != nil { println("err: " + err.Error()) // 报错:read /dev/stdin: resource temporarily unavailable return } println(n) }
执行结果
err: read /dev/stdin: resource temporarily unavailable
预期结果
(无错误,正常读取STDIN内容并输出读取的字节数)
内容的提问来源于stack exchange,提问作者ilya_dt
相关产品推荐
相关产品推荐

