在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.h
struct winsize {
unsigned short ws_row; //以字符爲單位,行數
unsigned short ws_col; //以字符爲單位,列數
unsigned short ws_xpixel; //以像素爲單位,水平方向
unsigned short ws_ypixel; //以像素爲單位,豎直方向
}