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 關注
- 157 瀏覽
添加回答
舉報