linux获取终端大小

来源:互联网 发布:今天怎么登录不上淘宝 编辑:程序博客网 时间:2024/06/05 00:19

在shell下可以直接用$LINES和$COLUMNS两个变量,$LINES是屏幕高,$COLUMNS是屏幕宽,单位都是字符数。


在程序中获取:

1.可以通过读取$LINES与$COLUMNS对应的文件之类的,这里不做赘述。

2.可以通过ioctl()系统函数得到


//具体实现方法#include<stdio.h>#include<sys/types.h>#include<sys/ioctl.h>#include<unistd.h>#include<termios.h>int main(){    struct winsize size;    ioctl(STDIN_FILENO,TIOCGWINSZ,&size);    printf("%d\n",size.ws_col);    printf("%d\n",size.ws_row);    return 0;}


//其中struct winsize位于termios.h头文件内//具体位置vim /usr/include/asm-generic/termios.hstruct winsize {    unsigned short ws_row;      //以字符为单位,行数    unsigned short ws_col;      //以字符为单位,列数    unsigned short ws_xpixel;   //以像素为单位,水平方向    unsigned short ws_ypixel;   //以像素为单位,竖直方向}

感谢lpfvip,nevil两位

0 0
原创粉丝点击