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 サイトの他の関連記事を参照してください。