系统调用常量 syscall.ENONET Go 中未定义
Syscall Constant syscall.ENONET Undefined in Go
我尝试运行以下bar.go脚本
package main
import (
"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 并使用版本 1.14.3 darwin/amd64
。我尝试 运行 在 Go playground 上使用这个确切的脚本,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 上工作?
谢谢
是的,它有一些奇怪的问题。虽然,syscall现在被封锁了。
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
}
我尝试运行以下bar.go脚本
package main
import (
"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 并使用版本 1.14.3 darwin/amd64
。我尝试 运行 在 Go playground 上使用这个确切的脚本,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 上工作?
谢谢
是的,它有一些奇怪的问题。虽然,syscall现在被封锁了。
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
}