Heim >Backend-Entwicklung >Golang >Wie kann man die Terminalgröße in Go effizient ermitteln?
Terminalgröße mit Go ermitteln
Eine häufige Aufgabe bei der Shell-Programmierung ist das Ermitteln der Größe des Terminalfensters. Diese Informationen sind nützlich, um die Ausgabe zu formatieren oder Benutzeroberflächen zu erstellen. In Go besteht ein Ansatz darin, den Befehl stty zu verwenden, um die Terminalgröße abzurufen. Diese Methode kann jedoch problematisch sein, da sie einen neuen Prozess erzeugt, der nicht mit dem aktuellen TTY zusammenhängt.
Um dieses Problem zu beheben, sollten Sie die Verwendung des Terminalpakets im Paket golang.org/x/crypto/ssh in Betracht ziehen . Dieses Paket stellt eine GetSize-Funktion bereit, die die Terminalgröße einfach abruft. So verwenden Sie es:
package main import ( "fmt" "golanger.org/x/crypto/ssh/terminal" "os" ) func main() { width, height, err := terminal.GetSize(int(os.Stdin.Fd())) if err != nil { fmt.Println("Error getting terminal size:", err) } else { fmt.Printf("Width: %d Height: %d\n", width, height) } }
Die terminal.GetSize-Funktion verwendet einen Dateideskriptor als Eingabe. Eine häufige Wahl hierfür ist os.Stdin.Fd(), das den Eingabestream des aktuellen Terminals darstellt. Die Funktion gibt die Breite und Höhe des Terminals in Zeichen zurück. Durch die Verwendung des Terminalpakets können Sie die Terminalgröße für den aktuellen Prozess genau ermitteln, was es zu einer geeigneteren Lösung macht als die Ausführung des Befehls stty.
Das obige ist der detaillierte Inhalt vonWie kann man die Terminalgröße in Go effizient ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!