Maison >développement back-end >Golang >Comment obtenir efficacement la taille du terminal dans Go ?

Comment obtenir efficacement la taille du terminal dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-17 09:28:24984parcourir

How to Efficiently Get Terminal Size in Go?

Obtention de la taille du terminal avec Go

Une tâche courante dans la programmation shell consiste à obtenir la taille de la fenêtre du terminal. Ces informations sont utiles pour formater la sortie ou créer des interfaces utilisateur. Dans Go, une approche consiste à utiliser la commande stty pour récupérer la taille du terminal. Cependant, cette méthode peut être problématique car elle génère un nouveau processus qui n'est pas lié au tty actuel.

Pour résoudre ce problème, envisagez d'utiliser le package terminal dans le package golang.org/x/crypto/ssh. . Ce package fournit une fonction GetSize qui récupère facilement la taille du terminal. Voici comment l'utiliser :

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)
    }
}

La fonction terminal.GetSize prend un descripteur de fichier en entrée. Un choix courant pour cela est os.Stdin.Fd(), qui représente le flux d'entrée du terminal actuel. La fonction renvoie la largeur et la hauteur du terminal en caractères. En utilisant le package terminal, vous pouvez obtenir avec précision la taille du terminal pour le processus en cours, ce qui en fait une solution plus appropriée que l'exécution de la commande stty.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn