go linux 终端颜色,Golang在linux系统上获取terminal终端的宽度

title: "Golang在linux系统上获取terminal终端的宽度"

date: 2021-02-09T23:31:59+08:00

draft: true

tags: ['terminal','go']

author: "dadigang"

author_cn: "大地缸"

personal: "http://www.real007.cn"

package main

import (

"fmt"

"runtime"

"syscall"

"unsafe"

)

const (

TIOCGWINSZ = 0x5413

TIOCGWINSZ_OSX = 1074295912

)

type window struct {

Row uint16

Col uint16

Xpixel uint16

Ypixel uint16

}

func terminalWidth() (int, error) {

w := new(window)

tio := syscall.TIOCGWINSZ

if runtime.GOOS == "darwin" {

tio = TIOCGWINSZ_OSX

}

res, _, err := syscall.Syscall(syscall.SYS_IOCTL,

uintptr(syscall.Stdin),

uintptr(tio),

uintptr(unsafe.Pointer(w)),

)

if int(res) == -1 {

return 0, err

}

return int(w.Col), nil

}

func main() {

width, _ := terminalWidth()

fmt.Print(width)

}

有疑问加站长微信联系(非本文作者)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值