2016-03-16 180 views
1

我能得到的最接近的是runtime.GOARCH,但是也可能給出arm,它可能是32位或64位。如何確定操作系統在Go中是32位還是64位?

+0

'runtime.GOARCH'會給你的架構的程序編譯運行的。爲了獲得實際系統的體系結構細節,您可能最終不得不檢查'runtime.GOOS',並執行平臺特定的系統調用。 –

回答

1

使用GOARCH的手臂:手臂(ARM)和arm64(AArch64),

Optional environment variables

$ GOOS和$ GOARCH

目標操作系統和編譯架構的名稱。 這些默認值分別爲$ GOHOSTOS和$ GOHOSTARCH的值分別爲 (如下所述)。

選擇爲$ GOOS是

$GOOS  $GOARCH 
darwin 386 
darwin amd64 
darwin arm 
darwin arm64 
dragonfly  amd64 
freebsd 386 
freebsd amd64 
freebsd arm 
linux  386 
linux  amd64 
linux  arm 
linux  arm64 
linux  ppc64 
linux  ppc64le 
linux  mips64 
linux  mips64le 
netbsd 386 
netbsd amd64 
netbsd arm 
openbsd 386 
openbsd amd64 
openbsd arm 
plan9  386 
plan9  amd64 
solaris amd64 
windows 386 
windows amd64 
+1

IIUC,'runtime.GOARCH'將返回正在執行的內置*程序*的體系結構。由於某些方面(即Intel/AMD的64位ISA)允許在64位內核上運行32位程序,所以如果OP真的想知道當前正在執行Go程序的操作系統的體系結構,應該是不同的(而且,恐怕是針對平臺的)。 – kostix

相關問題