ホームページ > バックエンド開発 > Golang > Go で端末サイズを効率的に取得するにはどうすればよいですか?

Go で端末サイズを効率的に取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-17 09:28:24
オリジナル
980 人が閲覧しました

How to Efficiently Get Terminal Size in Go?

Go による端末サイズの取得

シェル プログラミングにおける一般的なタスクの 1 つは、端末ウィンドウのサイズを取得することです。この情報は、出力のフォーマットやユーザー インターフェイスの作成に役立ちます。 Go では、stty コマンドを使用して端末のサイズを取得する方法があります。ただし、この方法は、現在の tty に関連しない新しいプロセスを生成するため、問題が発生する可能性があります。

この問題に対処するには、golang.org/x/crypto/ssh パッケージ内のターミナル パッケージの使用を検討してください。 。このパッケージは、端末のサイズを簡単に取得する GetSize 関数を提供します。使用方法は次のとおりです。

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)
    }
}
ログイン後にコピー

terminal.GetSize 関数は、ファイル記述子を入力として受け取ります。このための一般的な選択は、現在の端末の入力ストリームを表す os.Stdin.Fd() です。この関数は、端末の幅と高さを文字数で返します。ターミナル パッケージを使用すると、現在のプロセスのターミナル サイズを正確に取得できるため、stty コマンドを実行するよりも適切なソリューションになります。

以上がGo で端末サイズを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート