我嘗試運行以下 bar.go 腳本package mainimport ( "fmt" "syscall")func main() { fmt.Printf("%d\n", uintptr(syscall.ENONET))}通過調用go run bar.go并得到這個錯誤:# command-line-arguments./bar.go:9:29: undefined: syscall.ENONET我正在使用 Mac 和 go 版本1.14.3 darwin/amd64。我試圖在 Go 操場上運行這個確切的腳本,https://play.golang.org/p/ecMZPsGgGOa并且它有效。我嘗試使用運行腳本CGO_ENABLED=1 GOOS=linux GOARCH=amd64并收到此錯誤:fork/exec /var/folders/2l/dj6ph5t92y17vhtv3n6xzr5r0000gn/T/go-build847134732/b001/exe/bar: exec format error如何syscall.ENONET在 Mac 上工作?
1 回答

ibeautiful
TA貢獻1993條經(jīng)驗 獲得超6個贊
是的,它有一些奇怪的問題。雖然,系統(tǒng)調用現(xiàn)在被鎖定了。
Deprecated: this package is locked down.
Callers should use the corresponding package in the golang.org/x/sys repository instead.
我試過了go version go1.14.3 darwin/amd64,但我遇到了同樣的問題。
但是在文檔中,我們有:
ENONET = Errno(0x40)
因為,Errno也是導出類型,您可以顯式模擬相同的行為:
package main
import (
"fmt"
"syscall"
)
func main() {
fmt.Printf("%d\n", syscall.Errno(0x40)) // 64
fmt.Printf("%v\n", syscall.Errno(0x40)) // host is down
}
- 1 回答
- 0 關注
- 187 瀏覽
添加回答
舉報
0/150
提交
取消