go - 系统调用变量未定义

标签 go system-calls

当尝试在我的 Mac 上构建以下程序时,我收到构建错误:undefined: syscall.TCPInfo 即使该变量已明确记录 http://golang.org/pkg/syscall/#TCPInfo

package main

import "syscall"

func main() {
    _ = syscall.TCPInfo{}
}

这是我的 go 工具版本。

$ go version
go version go1.3 darwin/amd64

我认为这可能是缺乏操作系统支持的问题,所以我在 http://play.golang.org 上试了一下, 但看起来许多记录在案的变量只是从 syscall 包中随机丢失:http://play.golang.org/p/w3Uk6NaZVy

我错过了什么吗?

最佳答案

系统调用中指定的变量依赖于操作系统。

你可以给文件添加一个后缀来指定它们应该为哪个操作系统构建:

// +build linux,386 darwin,!cgo

因此您可以为每个操作系统使用特定的系统调用标志。

关于go - 系统调用变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27361715/

相关文章:

go - Apache Beam Golang Dataflow 运行暂停

C 系统调用处理程序引用具有不同返回类型和参数数量的函数

python - 在 Python 中运行时获取系统调用号

arrays - append() 如何在导致这种情况的幕后工作?

go - 告诉我这段代码 GOLANG 有什么问题

unix - 是否有 POSIX 系统调用来解析文件系统路径?

linux - Linux如何提取syscall的第六个参数?

c - wait() 系统调用 - child 会忽略它吗?

json - 对于encoding/json,如何优雅地处理键名称中包含撇号的 API JSON 调用?

go - 如何从控制台中的标准输入中读取?