在 Go 中获取终端大小
在 Go 中,确定当前终端的大小可能具有挑战性。一种常见的方法是执行 stty size 命令,但由于进程隔离问题,这可能并不总是有效。
为了解决此问题,ssh 包中的终端包提供了一种方便的解决方案。 GetSize 方法允许您轻松检索给定文件描述符的终端大小:
package main import ( "golang.org/x/crypto/ssh/terminal" "log" "os" ) func main() { width, height, err := terminal.GetSize(int(os.Stdin.Fd())) if err != nil { log.Fatal(err) } log.Printf("Terminal width: %d, height: %d", width, height) }
终端的文件描述符通常使用 os.Stdin.Fd() 获取,它返回一个表示当前标准输入(即终端)。
通过使用 GetSize 方法,您可以准确确定终端的大小,从而允许您在以下位置实现终端感知的应用程序走吧。
以上是如何在 Go 中获取终端大小?的详细内容。更多信息请关注PHP中文网其他相关文章!