您是否考虑过使用getenv()?它使您可以获取包含端子列和行的系统环境变量。
或者,使用您的方法,如果您想查看内核显示的终端大小(最好是在调整终端大小时),则需要使用TIOCGWINSZ而不是TIOCGSIZE,如下所示:
struct winsize w;ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
和完整的代码:
#include <sys/ioctl.h>#include <stdio.h>#include <unistd.h>int main (int argc, char **argv){ struct winsize w; ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); printf ("lines %dn", w.ws_row); printf ("columns %dn", w.ws_col); return 0; // make sure your main returns int}


