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
Libérer: 2024-12-17 09:28:24
original
958 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal