首页  |  Linux  |  C/C++  |  网络编程  |  Python   |  Algorithm  |  数据库  |  经验  |   人生 & 随想   |  站内搜索  |  关于

<<< previous

该文已被浏览3245

Linux:如何获取终端的大小?



   在Linux平台下编写程序,有时候需要获取终端的大小,之后根据终端的大小来调整输出到终端的信息的格式,使得显示结果更加美观。下面介绍几种获取终端大小的方法。

在Bash Shell中获取终端大小

   在Shell Script中获取终端大小的方法很简单,Bash Shell 中有两个环境变量,分别是 LINESCOLUMNS,只要输出这两个环境变量的值,即可查看当前终端的大小了。
查看终端的高度:

$ echo $LINES

查看终端的宽度:

$ echo $COLUMNS

此外,使用 tputstty 这两个命令行工具也可以查看当前终端的大小:
查看终端的高度:

$ tput lines

查看终端的宽度:

$ tput cols

使用 stty 可以同时返回终端的高度和宽度:

$ stty size

在C/C++中获取终端的大小

   在C/C++中获取终端的大小,需要借助 <sys/ioctl.h> 头文件中的 ioctl() 函数,关于该函数的用法,你可以通过 man ioctl 来查看,下面只给出使用该函数获取终端大小的方法:

#include<sys/ioctl.h>
#include<unistd.h>
#include<iostream>
int main()
{
    struct winsize w;
    ioctl(STDOUT_FILENO,TIOCGWINSZ,&w);
    std::cout<<w.ws_row<<"\n";  // 终端高度
    std::cout<<w.ws_col<<"\n";   // 终端宽度
    return 0;
}

在Python中获取终端的大小

在Python中,可以使用位于 shutil 模块下的 get_terminal_size() 函数来获取当前终端的大小,如下:

>>> import shutil
>>> res = shutil.get_terminal_size()
>>> print(res.lines, res.columns)  # 输出终端的高度和宽度


一如既往,如果你对文章中的内容有任何疑问,或者是发现文章中有任何错误,都可以通过下面的地址发邮件告诉我.
E-mail: contact@TechForGeek.info