Heim >Backend-Entwicklung >Golang >Wie identifiziere ich die GOOS- und GOARCH-Werte einer ausführbaren Datei ohne ihre Codebasis?

Wie identifiziere ich die GOOS- und GOARCH-Werte einer ausführbaren Datei ohne ihre Codebasis?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 15:39:01394Durchsuche

How to Identify the GOOS and GOARCH Values of an Executable Without Its Codebase?

Bestimmen der GOOS- und GOARCH-Werte einer ausführbaren Datei

Es ist möglich, die Werte von GOOS und GOARCH, dem Betriebssystem und der Prozessorarchitektur, zu ermitteln bzw. werden verwendet, um eine ausführbare Datei zu erstellen, ohne über die Codebasis selbst zu verfügen. Diese Informationen sind über Konstanten im Laufzeitpaket verfügbar.

runtime.GOOS und runtime.GOARCH

Das Laufzeitpaket stellt zwei Konstanten bereit: runtime.GOOS und runtime.GOARCH , die die Werte der entsprechenden Umgebungsvariablen zum Zeitpunkt der Kompilierung offenlegen. Auf diese Konstanten kann während der gesamten Ausführung der ausführbaren Datei zugegriffen werden, obwohl sie deren Laufzeitverhalten nicht beeinflussen.

Beispielimplementierung

Das folgende einfache Go-Programm veranschaulicht, wie das Laufzeitbetriebssystem und die Architektur abgerufen werden Informationen:

<code class="go">package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("OS:", runtime.GOOS)
    fmt.Println("Architecture:", runtime.GOARCH)
}</code>

Das Kompilieren und Ausführen dieses Programms mit angegebenen GOOS- und GOARCH-Werten (z. B. GOOS=windows GOARCH=amd64) druckt die erwartete Ausgabe:

OS: windows
Architecture: amd64

Hinweis

Vor Go 1.10 gab runtime.GOROOT() den zur Kompilierungszeit aufgezeichneten GOROOT-Wert zurück. In Go 1.10 und höher wird jedoch nach der Umgebungsvariablen GOROOT gesucht und deren Wert verwendet, falls festgelegt.

Das obige ist der detaillierte Inhalt vonWie identifiziere ich die GOOS- und GOARCH-Werte einer ausführbaren Datei ohne ihre Codebasis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn