Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mendapatkan Saiz Terminal dengan Cekap dalam Go?

Bagaimana untuk Mendapatkan Saiz Terminal dengan Cekap dalam Go?

Linda Hamilton
Lepaskan: 2024-12-17 09:28:24
asal
912 orang telah melayarinya

How to Efficiently Get Terminal Size in Go?

Mendapatkan Saiz Terminal dengan Go

Satu tugas biasa dalam pengaturcaraan shell ialah mendapatkan saiz tetingkap terminal. Maklumat ini berguna untuk memformat output atau mencipta antara muka pengguna. Dalam Go, satu pendekatan ialah menggunakan arahan stty untuk mendapatkan semula saiz terminal. Walau bagaimanapun, kaedah ini boleh menimbulkan masalah kerana ia menghasilkan proses baharu yang tidak berkaitan dengan tty semasa.

Untuk menangani isu ini, pertimbangkan untuk menggunakan pakej terminal dalam pakej golang.org/x/crypto/ssh . Pakej ini menyediakan fungsi GetSize yang mudah mendapatkan semula saiz terminal. Begini cara untuk menggunakannya:

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)
    }
}
Salin selepas log masuk

Fungsi terminal.GetSize mengambil deskriptor fail sebagai input. Pilihan biasa untuk ini ialah os.Stdin.Fd(), yang mewakili aliran input terminal semasa. Fungsi mengembalikan lebar dan ketinggian terminal dalam aksara. Dengan menggunakan pakej terminal, anda boleh mendapatkan saiz terminal dengan tepat untuk proses semasa, menjadikannya penyelesaian yang lebih sesuai daripada melaksanakan arahan stty.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Saiz Terminal dengan Cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan