You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 21:33:10