1 回答

TA贡献1824条经验 获得超8个赞
这是golang.org/x/sys/windows包中的错误。同样的问题过去也存在于内置的 syscall 包中,但它在 Go 1.17 中得到了修复。
您项目中的某些内容必须导入包的 golang.org/x 版本而不是内置版本,因此执行以下代码来初始化Stdin
、Stdout
和Stderr
变量:
var (
Stdin = getStdHandle(STD_INPUT_HANDLE)
Stdout = getStdHandle(STD_OUTPUT_HANDLE)
Stderr = getStdHandle(STD_ERROR_HANDLE)
)
func getStdHandle(stdhandle uint32) (fd Handle) {
r, _ := GetStdHandle(stdhandle)
CloseOnExec(r)
return r
}
该代码的修复方法是删除CloseOnExec
调用,这是HANDLE_FLAG_INHERIT
在给定文件句柄上清除的内容。
如何在你的项目中解决这个问题还不太清楚。我想你可以在你的项目中供应 golang.org/x/sys
模块,也许replace
在你的 go.mod 中有一个指令。在您的本地副本中应用修复程序。
同时,我鼓励您也报告该错误。该文档指示您在 GitHub 的主要 Go 项目上报告问题,并在标题前加上x/sys前缀。
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报