在shell下可以直接用$LINES和$COLUMNS两个变量,$LINES是屏幕高,$COLUMNS是屏幕宽,单位都是字符数。
在程序中获取:
1.可以通过读取$LINES与$COLUMNS对应的文件之类的,这里不做赘述。
2.可以通过ioctl()系统函数得到
//具体实现方法
#include
#include
#include
#include
#include
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.h
struct winsize {
unsigned short ws_row; //以字符为单位,行数
unsigned short ws_col; //以字符为单位,列数
unsigned short ws_xpixel; //以像素为单位,水平方向
unsigned short ws_ypixel; //以像素为单位,竖直方向
}